我想将数据存储在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类中?
答案 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}}