在 Android 适配器中按值传递和按引用传递?
Pass by Value and Pass by Reference in Android Adapter?
我正在将 ArrayList 从 Activity 传递到 RecyclerView 适配器。但是改变 activity 中的值也会改变适配器中的值。我怎样才能避免这种情况?
List<Object> objectList = Collections.synchronizedList(new ArrayList<Object>());
public RecyclerViewAdapter(Context context,List<Object> commentDatas) {
mContext = context;
commentDataList = commentDatas;
}
因为你没有展示你的代码,所以我会用例子展示我的代码
创建 Adapter 时,您通过 Adapter 的构造函数将数据发送到 Adapter,如下所示:
List<MyObject> list;
public RcvAdapter(List<MyObject> list, Context context) {
this.list = list;
this.context = context;
}
如果您想解决您的问题,请执行以下操作:
List<MyObject> list = new ArrayList<>();
public RcvAdapter(List<MyObject> list, Context context) {
this.list.addAll(list);
this.context = context;
}
希望对您有所帮助!
我正在将 ArrayList 从 Activity 传递到 RecyclerView 适配器。但是改变 activity 中的值也会改变适配器中的值。我怎样才能避免这种情况?
List<Object> objectList = Collections.synchronizedList(new ArrayList<Object>());
public RecyclerViewAdapter(Context context,List<Object> commentDatas) {
mContext = context;
commentDataList = commentDatas;
}
因为你没有展示你的代码,所以我会用例子展示我的代码
创建 Adapter 时,您通过 Adapter 的构造函数将数据发送到 Adapter,如下所示:
List<MyObject> list;
public RcvAdapter(List<MyObject> list, Context context) {
this.list = list;
this.context = context;
}
如果您想解决您的问题,请执行以下操作:
List<MyObject> list = new ArrayList<>();
public RcvAdapter(List<MyObject> list, Context context) {
this.list.addAll(list);
this.context = context;
}
希望对您有所帮助!