我可以更改自定义对象中的数据集,然后通知适配器吗?

Can I change a dataset inside a custom object and then notify the adapter?

我想知道的是,如果我像这样将适配器设置为 recyclerview:

mRecyclerView.setAdapter(new myRecyclerAdapter(mCustomObject.getDataSet()));

我可以像这样更新数据集并通知适配器吗?

mCustomObject.getDataSet().add(XPTO);
myRecyclerAdapter.notifyDataSetChanged();

或者我需要在适配器中获取数据集吗?

提前致谢!

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

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

假设您的数据在列表中,例如

List<MyData> dataSet;

MyData 就像

public class MyData {
String name;
String id;
public MyData(String n,String i){
this.name=n;
this.id=i;
}
//getter setter
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
.
.
.
//Creates Empty Constructor
public MyData(){
}

设置数据

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();