如何将Loop的上一个值存储在变量中

时间:2017-03-30 11:58:41

标签: android json

JSONObject jsonRoot = new JSONObject(response);

    ArrayList<Level2_Women> alUser = new ArrayList<>();
    JSONArray parentArray = jsonRoot.getJSONArray("categories");

    StringBuffer finalBufferData = new StringBuffer();

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


            JSONObject finalObject = parentArray.getJSONObject(j);

            user.setCategory(finalObject.getString("category"));
            String catid = finalObject.getString("category_id");



    }
    return user;
}

我正在使用这个循环。在我的循环中有12个元素,但它的打印只是最后一个值。如何在Listview中打印所有元素?

4 个答案:

答案 0 :(得分:1)

使用list存储所有值,然后使用

List<String> list = new ArrayList<String>();
for (int j = 0; j <parentArray.length(); j++) {
        JSONObject finalObject = parentArray.getJSONObject(j);
        user.setCategory(finalObject.getString("category"));
        String catid = finalObject.getString("category_id");
        list.add(catid);
}

答案 1 :(得分:0)

你的循环应该是这样的:

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


        JSONObject finalObject = parentArray.getJSONObject(j);

        user.setCategory(finalObject.getString("category"));
        String catid = finalObject.getString("category_id");

返回用户;

}     每次迭代for循环时,return user都会返回值。 因为我认为你是java的新手excelent tutorial will help you learn a lot

答案 2 :(得分:0)

试试这个,我想你有一个用户实体

List<User> userList = new ArrayList<String>();
for (int j = 0; j <parentArray.length(); j++) {
        JSONObject finalObject = parentArray.getJSONObject(j);
        user.setCategory(finalObject.getString("category"));
        String catid = finalObject.getString("category_id");
        userList.add(user);
}
for(String k: userList)
        {
            System.out.println(k);
        }
return userList

答案 3 :(得分:0)

错误1:您始终返回user个对象而不是列表alUser
错误2:for圈内,您没有将个人user添加到列表alUser

按以下方式更新您的方法:

public ArrayList<Level2_Women> YOUR_METHOD_NAME(String response)
{
    // User List
    ArrayList<Level2_Women> alUser = new ArrayList<>();

    JSONObject jsonRoot = new JSONObject(response);
    JSONArray parentArray = jsonRoot.getJSONArray("categories");

    // Not used!
    StringBuffer finalBufferData = new StringBuffer();

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

        JSONObject finalObject = parentArray.getJSONObject(j);

        // User
        Level2_Women user = new Level2_Women();

        // Set user values
        user.setCategory(finalObject.getString("category"));

        // Not used!        
        String catid = finalObject.getString("category_id");

        // Add user to list
        alUser.add(user)
    }

    // Finally return user list
    return alUser;
}

仅供参考,如果您遇到列表更新问题,请使用适配器notifyDataSetChanged()方法更新ListView / RecyclerView上的数据。

希望这会有所帮助〜