Android 如何在水平Listview中获取动态数据

Android 如何在水平Listview中获取动态数据,android,json,parsing,Android,Json,Parsing,我正在从url进行解析,以便将数据放入水平Listview 它工作正常,但只显示json对象的最后一个值。我在下面粘贴了我的json解析和json。请告诉我哪里做错了 这是我的json { "status": 1, "category": [ { "id": 1, "category_name_en": "car", "category_name_ar": "car",

我正在从url进行解析,以便将数据放入水平Listview 它工作正常,但只显示json对象的最后一个值。我在下面粘贴了我的json解析和json。请告诉我哪里做错了

这是我的json

 {
    "status": 1,
    "category": [
        {
            "id": 1,
            "category_name_en": "car",
            "category_name_ar": "car",
            "description_en": "",
            "description_ar": "",
            "day": "monday,tuesday,wednesday,thursday,friday,saturday,sunday",
            "status": "A",
            "created_at": "Sep 4 2017 8:09 AM",
            "updated_at": "Sep 4 2017 8:09 AM",
            "sub_category": [
                {
                    "id": 1,
                    "sub_category_name_en": "Audi",
                    "sub_category_name_ar": "Audi",
                    "sub_description_en": "",
                    "sub_description_ar": "",
                    "status": "A",
                    "created_at": "Sep 4 2017 8:10 AM",
                    "updated_at": "Sep 4 2017 8:10 AM"
                },
                {
                    "id": 4,
                    "sub_category_name_en": "New",
                    "sub_category_name_ar": "New",
                    "sub_description_en": "",
                    "sub_description_ar": "",
                    "status": "A",
                    "created_at": "Sep 4 2017 9:45 AM",
                    "updated_at": "Sep 4 2017 9:45 AM"
                }
            ]
        },
        {
            "id": 2,
            "category_name_en": "Animal",
            "category_name_ar": "Animal",
            "description_en": "",
            "description_ar": "",
            "day": "monday,tuesday,wednesday,thursday,friday,saturday,sunday",
            "status": "A",
            "created_at": "Sep 4 2017 9:19 AM",
            "updated_at": "Sep 4 2017 9:19 AM",
            "sub_category": [
                {
                    "id": 2,
                    "sub_category_name_en": "Dogs",
                    "sub_category_name_ar": "Dogs",
                    "sub_description_en": "",
                    "sub_description_ar": "",
                    "status": "A",
                    "created_at": "Sep 4 2017 9:20 AM",
                    "updated_at": "Sep 4 2017 9:20 AM"
                },
                {
                    "id": 3,
                    "sub_category_name_en": "Cat",
                    "sub_category_name_ar": "Cat",
                    "sub_description_en": "",
                    "sub_description_ar": "",
                    "status": "A",
                    "created_at": "Sep 4 2017 9:21 AM",
                    "updated_at": "Sep 4 2017 9:21 AM"
                }
            ]
        }
    ]
}
这是我的解析

这里我正在进行解析,它返回的json对象大小正确,但它只显示最后一个值

我错在哪里。请推荐我

public static ArrayList<CardData> PaeseBanner(String response) throws JSONException {
    ArrayList<CardData> alUser = new ArrayList<>();

    JSONObject jsonRoot = new JSONObject(response);

    JSONArray jsonArray = jsonRoot.getJSONArray("category");

    CardData LT = new CardData();

    for (int i = 0; i < jsonArray.length(); i++) {

        JSONObject jsonObject = jsonArray.getJSONObject(i);

        JSONObject jsonObject2 = null;

        JSONArray jsonArray1 = jsonObject.getJSONArray("sub_category");

        for (int j = 0; j < jsonArray1.length(); j++) {

            jsonObject2 = jsonArray1.getJSONObject(j);

            LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));

            alUser.add(LT);
        }

    }

    return alUser;
}
publicstaticarraylistpaesebanner(字符串响应)抛出JSONException{
ArrayList alUser=新的ArrayList();
JSONObject jsonRoot=新的JSONObject(响应);
JSONArray JSONArray=jsonRoot.getJSONArray(“类别”);
CardData LT=新的CardData();
for(int i=0;i
这是我的屏幕短片 试试这个

for (int j = 0; j < jsonArray1.length(); j++) {
    CardData LT = new CardData(); // Create new CardData object inside second for loop

    jsonObject2 = jsonArray1.getJSONObject(j);

    LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));

    alUser.add(LT);
}
for(int j=0;j
使用以下行:

CardData LT = new CardData();

内部为循环。像这样:

public static ArrayList<CardData> PaeseBanner(String response) throws JSONException {
    ArrayList<CardData> alUser = new ArrayList<>();

    JSONObject jsonRoot = new JSONObject(response);

    JSONArray jsonArray = jsonRoot.getJSONArray("category");



    for (int i = 0; i < jsonArray.length(); i++) {
        CardData LT = new CardData();

        JSONObject jsonObject = jsonArray.getJSONObject(i);

        JSONArray jsonArray1 = jsonObject.getJSONArray("sub_category");

        for (int j = 0; j < jsonArray1.length(); j++) {
            JSONObject jsonObject2 = null;

            jsonObject2 = jsonArray1.getJSONObject(j);

            LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));

            alUser.add(LT);
        }

    }

    return alUser;
}
publicstaticarraylistpaesebanner(字符串响应)抛出JSONException{
ArrayList alUser=新的ArrayList();
JSONObject jsonRoot=新的JSONObject(响应);
JSONArray JSONArray=jsonRoot.getJSONArray(“类别”);
for(int i=0;i
public static ArrayList<CardData> PaeseBanner(String response) throws JSONException {
    ArrayList<CardData> alUser = new ArrayList<>();

    JSONObject jsonRoot = new JSONObject(response);

    JSONArray jsonArray = jsonRoot.getJSONArray("category");



    for (int i = 0; i < jsonArray.length(); i++) {
        CardData LT = new CardData();

        JSONObject jsonObject = jsonArray.getJSONObject(i);

        JSONArray jsonArray1 = jsonObject.getJSONArray("sub_category");

        for (int j = 0; j < jsonArray1.length(); j++) {
            JSONObject jsonObject2 = null;

            jsonObject2 = jsonArray1.getJSONObject(j);

            LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));

            alUser.add(LT);
        }

    }

    return alUser;
}