【问题标题】:ArrayList return empty value [closed]ArrayList 返回空值
【发布时间】:2021-05-23 15:29:15
【问题描述】:

我在关于 Arraylist 的代码中有一个问题。我有两种方法,一种方法与服务器一起使用以获取数据,在此方法中我将数据添加到 ArrayList。第二种方法是返回 Arraylist 的 getter。但是当我在第一个方法中使用 Log.d() 显示数据时,ArrayList 有数据。但是当我尝试调用第二种方法时,ArrayList 是空的。帮我!!!先感谢您!!! 下面显示了将从服务器获取数据的代码优先方法 试试 {

            JSONArray jsonArray= new JSONArray(response);
            for(int i=0; i<jsonArray.length(); ++i)
            {
                ordersLists.setId(jsonArray.getJSONObject(i).getString("id"));
                ordersLists.setMain_cat(jsonArray.getJSONObject(i).getString("main_cat"));
                ordersLists.setSub_cat(jsonArray.getJSONObject(i).getString("sub_cat"));
                ordersLists.setDate(jsonArray.getJSONObject(i).getString("date"));
                ordersLists.setPrice(jsonArray.getJSONObject(i).getInt("price"));
                ordersLists.setComment(jsonArray.getJSONObject(i).getString("comment"));
                ordersLists.setCity(jsonArray.getJSONObject(i).getInt("city"));
                arrayList.add(ordersLists);
            }

第二种方法是getter。

 public ArrayList<OrdersLists> getArrayList()
{
 
     return  arrayList;
}

【问题讨论】:

  • 这个不清楚
  • 在每次迭代中,您将添加到arrayListordersLists 的同一实例 的引用。这意味着当您修改该对象时,它将通过 arraylist 的每个引用(“元素”)可见。您可能希望在每次迭代中为ordersLists 创建new 实例,对其进行设置,然后将其添加到arrayList

标签: java android arraylist


【解决方案1】:

根据我从您的问题中了解到的情况,我认为解决方案是如果您的第一种方法来自

arrayList.add(ordersLists);

the name of your object that has the arrayList .setArrayList(ordersLists);

这里的setter方法setArrayList如下:

public void setArrayList(ArrayList<String> arrayList)
{
    this.arrayList= arrayList;
}

https://www.codejava.net/coding/java-getter-and-setter-tutorial-from-basics-to-best-practices

如果有帮助,请告诉我!

【讨论】:

    【解决方案2】:

    在您的代码中,您初始化i = 0,然后尝试递减。

    但我认为你的索引不能低于零。

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

    试试这个:

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

    【讨论】:

      【解决方案3】:

      试试这个

              JSONArray jsonArray= new JSONArray(response);
              for(int i=0; i<jsonArray.length(); i++)
              {
                  ordersLists = new OrdersLists();
                  ordersLists.setId(jsonArray.getJSONObject(i).getString("id"));
                  ordersLists.setMain_cat(jsonArray.getJSONObject(i).getString("main_cat"));
                  ordersLists.setSub_cat(jsonArray.getJSONObject(i).getString("sub_cat"));
                  ordersLists.setDate(jsonArray.getJSONObject(i).getString("date"));
                  ordersLists.setPrice(jsonArray.getJSONObject(i).getInt("price"));
                  ordersLists.setComment(jsonArray.getJSONObject(i).getString("comment"));
                  ordersLists.setCity(jsonArray.getJSONObject(i).getInt("city"));
                  arrayList.add(ordersLists);
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-02
        • 1970-01-01
        • 1970-01-01
        • 2018-05-16
        • 2015-06-17
        • 2012-05-27
        • 2014-12-30
        相关资源
        最近更新 更多