Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我是否可以更改自定义对象内的数据集,然后通知适配器?_Android_Android Recyclerview_Android Adapter_Notifydatasetchanged - Fatal编程技术网

Android 我是否可以更改自定义对象内的数据集,然后通知适配器?

Android 我是否可以更改自定义对象内的数据集,然后通知适配器?,android,android-recyclerview,android-adapter,notifydatasetchanged,Android,Android Recyclerview,Android Adapter,Notifydatasetchanged,我想知道的是,如果我将适配器设置为recyclerview,如下所示: mRecyclerView.setAdapter(new myRecyclerAdapter(mCustomObject.getDataSet())); 我可以像这样更新数据集并通知适配器吗 mCustomObject.getDataSet().add(XPTO); myRecyclerAdapter.notifyDataSetChanged(); 或者我需要在适配器中获取数据集吗 提前感谢如果mCustomObject

我想知道的是,如果我将适配器设置为recyclerview,如下所示:

mRecyclerView.setAdapter(new myRecyclerAdapter(mCustomObject.getDataSet()));
我可以像这样更新数据集并通知适配器吗

mCustomObject.getDataSet().add(XPTO);
myRecyclerAdapter.notifyDataSetChanged();
或者我需要在适配器中获取数据集吗


提前感谢

如果
mCustomObject.getDataSet()
总是返回同一个对象而不创建新对象,那就足够了。如果每次都返回一个新对象,那么适配器就无法更新要显示的值。

如果
mCustomObject.getDataSet()
总是返回相同的对象而不创建新对象,那就足够了。如果每次都返回一个新对象,则适配器无法更新要显示的值。

有多种方法。为了提高效率,请将其与位置一起使用。

有多种方法。为了提高效率,请将其与位置一起使用。

假设您的数据位于如下列表中

List<MyData> dataSet;
设置数据

MyData mydata=new MyData();
mydata.setName("One");
mydata.setId("one");
dataSet.add(mydata);
//for more data add the data in a loop.
设置适配器

MyData mydata=(MyData)datas.get(position);
String name1 =mydata.getName(); //get your name here
mydata.setName("give a diffrent name"); //you changed the name on this position
notifyDataSetChanged();

假设您的数据在如下列表中

List<MyData> dataSet;
设置数据

MyData mydata=new MyData();
mydata.setName("One");
mydata.setId("one");
dataSet.add(mydata);
//for more data add the data in a loop.
设置适配器

MyData mydata=(MyData)datas.get(position);
String name1 =mydata.getName(); //get your name here
mydata.setName("give a diffrent name"); //you changed the name on this position
notifyDataSetChanged();

使用
getter setter
并在位置上获取您的dataset类并设置新数据,调用并
notifyDataSetChanged()抱歉,我不明白:(使用
getter setter
并将您的dataset类置于该位置并设置新数据,调用并
notifyDataSetChanged();
抱歉,我不明白:(我知道,我只是更简单。我知道,我只是更简单。假设我已经设置了适配器。RecyclerView已经显示了iTen。因此,用户向列表中添加了一项。我的问题是:-我需要将此新项添加到适配器中的列表中吗?-或者我可以将此新项设置到对象和适配器知道其来源并正确更新自身?假设我已经设置了适配器。RecyclerView已经显示了iTen。因此,用户向列表中添加了一项。我的问题是:-我需要将此新项添加到适配器内的列表中吗?-或者我可以将此新项设置到对象和适配器kno内的列表中吗w它的源代码并正确地更新它自己?谢谢,我想这就是我需要的答案。因为我需要在对象内部使用这个数据集。事实上。建议:使用
myRecylerAdapter.setData(mCustomObject)
并从内部获取所需的数据(
mCustomObject.getDataSet()
)谢谢,我想这就是我需要的答案。因为我需要在对象内部使用此数据集。事实上。建议:使用
myRecyLeadapter.setData(mCustomObject)
并从内部获取所需的数据(
mCustomObject.getDataSet()