首页 > 解决方案 > 如何在'for'函数中包装字符串的arraylist

问题描述

我想使用simpleXML,改造将字符串的arraylist包装在'for'函数中。怎么做?

error:add(com.flower.model.FlowerModel in FlowerModel cannot be applied to(java.lang.String)

在主要片段中

if (response.body().getFlower()!=null){
     for (String flower: response.body().getFlower()){
          FlowerAdapter.add(flower);
     }

}

花适配器.java

public void add(FlowerModel model){
        models.add(model);
        notifyDataSetChanged();
    }

ResponseFlower.java

@Root(name="response",strict = false)
public class ResponseFlower extends ResponseBase{

    @Path("result")
    @ElementArray(entry = "flower")

    private String[] flowerslist;

    public String[] getFlowerlist() {
        return flowerslist;
    }
}

XML 格式

<response>
    <responseId>12345</responseId>
    <status>SUCCESS</status>
    <result>
        <flowers>
            <flower>Lily</flower>
            <flower>Rose</flower>
            <flower>Lavender</flower>
        </flowers>
    </result>
</response>

标签: javaandroidretrofit2simple-framework

解决方案


您正在发送一个String以添加预期方法参数的位置FlowerModel

您必须FlowerModel通过FlowerAdapter add方法调用发送一个。

if (response.body().getFlower()!=null){
     for (String flower: response.body().getFlower()){
          // I am assuming its a POJO
          FlowerModel flowerModel = new FlowerModel(); 
          // Assuming you have a method and property to the set the String flower
          flowerModel.setFlower(flower); 
          FlowerAdapter.add(flowerModel);
     }

}

推荐阅读