如何初始化在另一个活动中存储在Pojo类中的arraylist?

时间:2017-04-15 10:22:06

标签: java android arraylist

我想将数据存储在ArrayList中并在另一个类中访问它,但是当我访问arraylist时,arraylist.size()是0.Means我没有访问相同的arraylist。有人请告诉我我做错了什么。

这是我的POJO课程

public class item {
   private String name;
   private String body;
   private String profileImage;

public Item(){

}

public Item(String body,String name,String profileImage){
  this.body = body;
  this.name = name;
  this.profileImage = profileImage;
}
//Getter and setter

以下是我将数据存储在 A类中的方法,我已经检查过,将其成功插入到arraylist中。

A类

 List<Item> items = new ArrayList<>();
 Item item = new Item();
 item.setBody(body);
 item.setName(name);
 item.setProfileImage(profileImage);
 items.add(item);

当我访问item.size()它的返回值为0时,问题出现在 B类中,这意味着我没有访问同一个arraylist。

以下是我在 B类

中所做的工作
List<Item>items = new ArrayList<>();
Log.d("ListSize",String.valueOf(items.size()));

我之前在RecycleView尝试了这个,但这不起作用,因为我的B类是片段活动

public Class B(Context mContext, List<Item> items) {
    this.mContext = mContext;
    this.items = items;
}

那么我初始化arraylist的正确方法是什么?我将数据保存到 A类 B类中?

1 个答案:

答案 0 :(得分:1)

改变这样的课程:

ArrayList<Item> mDATA = new ArrayList<>();

/******   add values in array list  ****/

                Intent i = new Intent(CLASS_A.this, CLASS_B.class);
                i.putParcelableArrayListExtra("ARRAY_DATA", mDATA);
                startActivity(i);

现在在A组:

Intent intent = getIntent();
    ArrayList<Item> mDATAFROMA = new ArrayList<>();
     try {
                    mDATAFROMA = intent.getParcelableArrayListExtra("ARRAY_DATA");
                    Log.d("ListSize",String.valueOf(mDATAFROMA.size()));
                } catch (Exception e) {
                    e.printStackTrace();
                }

现在在B组中,获取列表:

Bundle args = new Bundle();
        args.putParcelableArrayList("GET_LIST", (ArrayList<? extends Parcelable>) mDATA);
        fragmentDemo.setArguments(args);

对于fragement传递:

ArrayList<Item> mDATAFROMA = new ArrayList<>(); 

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle pb=getArguments();
        mDATAFROMA = pb.getParcelableArrayList("GET_LIST"); 
    }

在片段获取中:

{{1}}