Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java循环对象列表_Java_Android_Json_List_Object - Fatal编程技术网

Android java循环对象列表

Android java循环对象列表,java,android,json,list,object,Java,Android,Json,List,Object,我的代码连接到一个Api,获取所有Json值并将它们全部存储在对象列表resultClass中。如何循环浏览列表并显示对象的所有名称属性 这是我正在使用的代码。JSON值与方法调用一起作为名为object的参数发送。然后循环并获取所有对象,并将它们存储在列表中 public void onResponse(JSONObject object) { Log.i("gw2Log", "Json Response" + object); resultClass res

我的代码连接到一个Api,获取所有Json值并将它们全部存储在对象列表
resultClass
中。如何循环浏览列表并显示对象的所有名称属性

这是我正在使用的代码。JSON值与方法调用一起作为名为
object
的参数发送。然后循环并获取所有对象,并将它们存储在列表中

public void onResponse(JSONObject object) {
        Log.i("gw2Log", "Json Response" + object);

        resultClass resultClass = new resultClass();

        try {
            resultClass.setCount(object.getInt("count"));
            resultClass.setPage(object.getInt("page"));
            resultClass.setLast_page(object.getInt("last_page"));
            resultClass.setTotal(object.getInt("total"));
            JSONArray list = new JSONArray(object.getString("results"));

            for (int i = 0; i < resultClass.getTotal(); i++) {
                JSONObject resultsObject = list.getJSONObject(i);

                resultClass.setData_id(resultsObject
                        .getInt("data_id"));
                resultClass.setName(resultsObject
                        .getString("name"));
                resultClass.setRarity(resultsObject
                        .getInt("rarity"));
                resultClass.setRestriction_level(resultsObject
                        .getInt("restriction_level"));
                resultClass.setImg(resultsObject
                        .getString("img"));
                resultClass.setType_id(resultsObject
                        .getInt("type_id"));
                resultClass.setSub_type_id(resultsObject
                        .getInt("sub_type_id"));
                resultClass.setPrice_last_changed(resultsObject
                        .getString("price_last_changed"));
                resultClass.setMax_offer_unit_price(resultsObject
                        .getInt("max_offer_unit_price"));
                resultClass.setMin_sale_unit_price(resultsObject
                        .getInt("min_sale_unit_price"));
                resultClass.setOffer_availability(resultsObject
                        .getInt("offer_availability"));
                resultClass.setSale_availability(resultsObject
                        .getInt("sale_availability"));
                resultClass.setSale_price_change_last_hour(resultsObject
                        .getInt("sale_price_change_last_hour"));
                resultClass.setOffer_price_change_last_hour(resultsObject
                        .getInt("offer_price_change_last_hour"));
            }

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        for(int i = 0; i < resultClass.total; i++) {
            Log.i("gw2Log", resultClass.name[i]);
        }
    }
在查找解决方案并检查实际错误时,它会说它需要和数组,但给出了一个字符串
Log.i(“gw2Log”,resultClass.name[i])

当我循环这个日志调用时,
Log.I(“gw2Log”,resultClass.name)显示上次对象名称属性及其循环量

编辑: 应请求包括my resultClass.java:

public class resultClass {

    public int data_id;
    public String name;
    public int rarity;
    public int restriction_level;
    public String img;
    public int type_id;
    public int sub_type_id;
    public String price_last_changed;
    public int max_offer_unit_price;
    public int min_sale_unit_price;
    public int offer_availability;
    public int sale_availability;
    public int sale_price_change_last_hour;
    public int offer_price_change_last_hour;

    public int count;
    public int page;
    public int last_page;
    public int total;

    public int getData_id() {
        return data_id;
    }

    public void setData_id(int data_id) {
        this.data_id = data_id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getRarity() {
        return rarity;
    }

    public void setRarity(int rarity) {
        this.rarity = rarity;
    }

    public int getRestriction_level() {
        return restriction_level;
    }

    public void setRestriction_level(int restriction_level) {
        this.restriction_level = restriction_level;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public int getType_id() {
        return type_id;
    }

    public void setType_id(int type_id) {
        this.type_id = type_id;
    }

    public int getSub_type_id() {
        return sub_type_id;
    }

    public void setSub_type_id(int sub_type_id) {
        this.sub_type_id = sub_type_id;
    }

    public String getPrice_last_changed() {
        return price_last_changed;
    }

    public void setPrice_last_changed(String price_last_changed) {
        this.price_last_changed = price_last_changed;
    }

    public int getMax_offer_unit_price() {
        return max_offer_unit_price;
    }

    public void setMax_offer_unit_price(int max_offer_unit_price) {
        this.max_offer_unit_price = max_offer_unit_price;
    }

    public int getMin_sale_unit_price() {
        return min_sale_unit_price;
    }

    public void setMin_sale_unit_price(int min_sale_unit_price) {
        this.min_sale_unit_price = min_sale_unit_price;
    }

    public int getOffer_availability() {
        return offer_availability;
    }

    public void setOffer_availability(int offer_availability) {
        this.offer_availability = offer_availability;
    }

    public int getSale_availability() {
        return sale_availability;
    }

    public void setSale_availability(int sale_availability) {
        this.sale_availability = sale_availability;
    }

    public int getSale_price_change_last_hour() {
        return sale_price_change_last_hour;
    }

    public void setSale_price_change_last_hour(int sale_price_change_last_hour) {
        this.sale_price_change_last_hour = sale_price_change_last_hour;
    }

    public int getOffer_price_change_last_hour() {
        return offer_price_change_last_hour;
    }

    public void setOffer_price_change_last_hour(int offer_price_change_last_hour) {
        this.offer_price_change_last_hour = offer_price_change_last_hour;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getLast_page() {
        return last_page;
    }

    public void setLast_page(int last_page) {
        this.last_page = last_page;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }
}

好吧,有几件事我很确定:

Tomer Shemesh是对的,您在每次迭代中都覆盖了
resultClass
对象

您想用
resultClass
中的普通变量制作数组,这样就可以实际存储多个项

关于您遇到的错误:

它发生在较低的for循环中,您希望在其中记录名称,对吗

resultClass.name
是一个字符串变量,它只包含一个字符串。您试图通过说出类似于
resultClass.name[i]
的语句来从数组中获取字符串。为此,您需要将其定义为一个字符串数组,包含多个字符串,如
publicstring[]name,并在构造函数中使用给定的函数初始化它,如
name=newstring[cap]。或者改用
ArrayList
,它动态增长,但使用自己的getter和setter,而不是数组的简单名称[index]函数


很抱歉,我不想在这里编写正确的代码,因为几乎整个过程都需要重写,但我希望这能帮助您自己重写它。

好的,我非常确定以下几点:

Tomer Shemesh是对的,您在每次迭代中都覆盖了
resultClass
对象

您想用
resultClass
中的普通变量制作数组,这样就可以实际存储多个项

关于您遇到的错误:

它发生在较低的for循环中,您希望在其中记录名称,对吗

resultClass.name
是一个字符串变量,它只包含一个字符串。您试图通过说出类似于
resultClass.name[i]
的语句来从数组中获取字符串。为此,您需要将其定义为一个字符串数组,包含多个字符串,如
publicstring[]name,并在构造函数中使用给定的函数初始化它,如
name=newstring[cap]。或者改用
ArrayList
,它动态增长,但使用自己的getter和setter,而不是数组的简单名称[index]函数


很抱歉,我不想在这里编写正确的代码,因为几乎整个过程都需要重写,但我希望这能帮助您自己重写。

尝试类似的方法

public void onResponse(JSONObject object) {
    Log.i("gw2Log", "Json Response" + object);

    resultClass resultClass = new resultClass();

    try {
        resultClass.setCount(object.getInt("count"));
        resultClass.setPage(object.getInt("page"));
        resultClass.setLast_page(object.getInt("last_page"));
        resultClass.setTotal(object.getInt("total"));
        JSONArray list = new JSONArray(object.getString("results"));

        for (int i = 0; i < resultClass.getTotal(); i++) {
            JSONObject resultsObject = list.getJSONObject(i);
            MyObject temp = new MyObject();
            temp.setData_id(resultsObject
                    .getInt("data_id"));
            temp.setName(resultsObject
                    .getString("name"));
            temp.setRarity(resultsObject
                    .getInt("rarity"));
            temp.setRestriction_level(resultsObject
                    .getInt("restriction_level"));
            temp.setImg(resultsObject
                    .getString("img"));
            temp.setType_id(resultsObject
                    .getInt("type_id"));
            temp.setSub_type_id(resultsObject
                    .getInt("sub_type_id"));
            temp.setPrice_last_changed(resultsObject
                    .getString("price_last_changed"));
            temp.setMax_offer_unit_price(resultsObject
                    .getInt("max_offer_unit_price"));
            temp.setMin_sale_unit_price(resultsObject
                    .getInt("min_sale_unit_price"));
            temp.setOffer_availability(resultsObject
                    .getInt("offer_availability"));
            temp.setSale_availability(resultsObject
                    .getInt("sale_availability"));
            temp.setSale_price_change_last_hour(resultsObject
                    .getInt("sale_price_change_last_hour"));
            temp.setOffer_price_change_last_hour(resultsObject
                    .getInt("offer_price_change_last_hour"));
            resultClass.addObject(temp);
        }

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    for(int i = 0; i < resultClass.total; i++) {
        Log.i("gw2Log", resultClass.getObject(i).name);
    }
}
首先创建一个新对象,类似于MyObject

public class MyObject {

public int data_id;
public String name;
public int rarity;
public int restriction_level;
public String img;
public int type_id;
public int sub_type_id;
public String price_last_changed;
public int max_offer_unit_price;
public int min_sale_unit_price;
public int offer_availability;
public int sale_availability;
public int sale_price_change_last_hour;
public int offer_price_change_last_hour;

public int getData_id() {
    return data_id;
}

public void setData_id(int data_id) {
    this.data_id = data_id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getRarity() {
    return rarity;
}

public void setRarity(int rarity) {
    this.rarity = rarity;
}

public int getRestriction_level() {
    return restriction_level;
}

public void setRestriction_level(int restriction_level) {
    this.restriction_level = restriction_level;
}

public String getImg() {
    return img;
}

public void setImg(String img) {
    this.img = img;
}

public int getType_id() {
    return type_id;
}

public void setType_id(int type_id) {
    this.type_id = type_id;
}

public int getSub_type_id() {
    return sub_type_id;
}

public void setSub_type_id(int sub_type_id) {
    this.sub_type_id = sub_type_id;
}

public String getPrice_last_changed() {
    return price_last_changed;
}

public void setPrice_last_changed(String price_last_changed) {
    this.price_last_changed = price_last_changed;
}

public int getMax_offer_unit_price() {
    return max_offer_unit_price;
}

public void setMax_offer_unit_price(int max_offer_unit_price) {
    this.max_offer_unit_price = max_offer_unit_price;
}

public int getMin_sale_unit_price() {
    return min_sale_unit_price;
}

public void setMin_sale_unit_price(int min_sale_unit_price) {
    this.min_sale_unit_price = min_sale_unit_price;
}

public int getOffer_availability() {
    return offer_availability;
}

public void setOffer_availability(int offer_availability) {
    this.offer_availability = offer_availability;
}

public int getSale_availability() {
    return sale_availability;
}

public void setSale_availability(int sale_availability) {
    this.sale_availability = sale_availability;
}

public int getSale_price_change_last_hour() {
    return sale_price_change_last_hour;
}

public void setSale_price_change_last_hour(int sale_price_change_last_hour) {
    this.sale_price_change_last_hour = sale_price_change_last_hour;
}

public int getOffer_price_change_last_hour() {
    return offer_price_change_last_hour;
}

public void setOffer_price_change_last_hour(int offer_price_change_last_hour) {
    this.offer_price_change_last_hour = offer_price_change_last_hour;
}
}
然后让你的resultClass看起来像这样

public void onResponse(JSONObject object) {
    Log.i("gw2Log", "Json Response" + object);

    resultClass resultClass = new resultClass();

    try {
        resultClass.setCount(object.getInt("count"));
        resultClass.setPage(object.getInt("page"));
        resultClass.setLast_page(object.getInt("last_page"));
        resultClass.setTotal(object.getInt("total"));
        JSONArray list = new JSONArray(object.getString("results"));

        for (int i = 0; i < resultClass.getTotal(); i++) {
            JSONObject resultsObject = list.getJSONObject(i);
            MyObject temp = new MyObject();
            temp.setData_id(resultsObject
                    .getInt("data_id"));
            temp.setName(resultsObject
                    .getString("name"));
            temp.setRarity(resultsObject
                    .getInt("rarity"));
            temp.setRestriction_level(resultsObject
                    .getInt("restriction_level"));
            temp.setImg(resultsObject
                    .getString("img"));
            temp.setType_id(resultsObject
                    .getInt("type_id"));
            temp.setSub_type_id(resultsObject
                    .getInt("sub_type_id"));
            temp.setPrice_last_changed(resultsObject
                    .getString("price_last_changed"));
            temp.setMax_offer_unit_price(resultsObject
                    .getInt("max_offer_unit_price"));
            temp.setMin_sale_unit_price(resultsObject
                    .getInt("min_sale_unit_price"));
            temp.setOffer_availability(resultsObject
                    .getInt("offer_availability"));
            temp.setSale_availability(resultsObject
                    .getInt("sale_availability"));
            temp.setSale_price_change_last_hour(resultsObject
                    .getInt("sale_price_change_last_hour"));
            temp.setOffer_price_change_last_hour(resultsObject
                    .getInt("offer_price_change_last_hour"));
            resultClass.addObject(temp);
        }

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    for(int i = 0; i < resultClass.total; i++) {
        Log.i("gw2Log", resultClass.getObject(i).name);
    }
}
公共类结果类{

public int count;
public int page;
public int last_page;
public int total;
public ArrayList<MyObject> myObjects = new ArrayList();

public int getCount() {
    return count;
}

public void setCount(int count) {
    this.count = count;
}

public int getPage() {
    return page;
}

public void setPage(int page) {
    this.page = page;
}

public int getLast_page() {
    return last_page;
}

public void setLast_page(int last_page) {
    this.last_page = last_page;
}

public int getTotal() {
    return total;
}

public void setTotal(int total) {
    this.total = total;
}

public MyObject getObject(int pos){
    return myObjects.get(pos);
}
public void addObject(MyObject object)
{
    myObjects.add(object);
}
}
公共整数计数;
公共int页;
公共int最后一页;
公共整数合计;
public ArrayList myObjects=new ArrayList();
public int getCount(){
返回计数;
}
公共无效集合计数(整数计数){
this.count=计数;
}
公共int getPage(){
返回页面;
}
公共无效设置页(整版页){
this.page=page;
}
公共int getLast_页面(){
返回最后一页;
}
公共无效设置最后一页(整数最后一页){
this.last\u page=最后一页;
}
公共int getTotal(){
返回总数;
}
公共无效集合总计(整数总计){
这个.总计=总计;
}
公共MyObject获取对象(int pos){
返回myObjects.get(pos);
}
公共无效添加对象(MyObject对象)
{
myObjects.add(对象);
}
}
那么你的回答应该是这样的

public void onResponse(JSONObject object) {
    Log.i("gw2Log", "Json Response" + object);

    resultClass resultClass = new resultClass();

    try {
        resultClass.setCount(object.getInt("count"));
        resultClass.setPage(object.getInt("page"));
        resultClass.setLast_page(object.getInt("last_page"));
        resultClass.setTotal(object.getInt("total"));
        JSONArray list = new JSONArray(object.getString("results"));

        for (int i = 0; i < resultClass.getTotal(); i++) {
            JSONObject resultsObject = list.getJSONObject(i);
            MyObject temp = new MyObject();
            temp.setData_id(resultsObject
                    .getInt("data_id"));
            temp.setName(resultsObject
                    .getString("name"));
            temp.setRarity(resultsObject
                    .getInt("rarity"));
            temp.setRestriction_level(resultsObject
                    .getInt("restriction_level"));
            temp.setImg(resultsObject
                    .getString("img"));
            temp.setType_id(resultsObject
                    .getInt("type_id"));
            temp.setSub_type_id(resultsObject
                    .getInt("sub_type_id"));
            temp.setPrice_last_changed(resultsObject
                    .getString("price_last_changed"));
            temp.setMax_offer_unit_price(resultsObject
                    .getInt("max_offer_unit_price"));
            temp.setMin_sale_unit_price(resultsObject
                    .getInt("min_sale_unit_price"));
            temp.setOffer_availability(resultsObject
                    .getInt("offer_availability"));
            temp.setSale_availability(resultsObject
                    .getInt("sale_availability"));
            temp.setSale_price_change_last_hour(resultsObject
                    .getInt("sale_price_change_last_hour"));
            temp.setOffer_price_change_last_hour(resultsObject
                    .getInt("offer_price_change_last_hour"));
            resultClass.addObject(temp);
        }

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    for(int i = 0; i < resultClass.total; i++) {
        Log.i("gw2Log", resultClass.getObject(i).name);
    }
}
public void onResponse(JSONObject对象){
Log.i(“gw2Log”、“Json响应”+对象);
resultClass resultClass=新建resultClass();
试一试{
resultClass.setCount(object.getInt(“count”);
resultClass.setPage(object.getInt(“page”);
resultClass.setLast_页面(object.getInt(“last_页面”);
resultClass.setTotal(object.getInt(“total”);
JSONArray list=newjsonarray(object.getString(“results”);
for(int i=0;i