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

时间:2016-04-26 13:12:17

标签: android android-recyclerview android-adapter notifydatasetchanged

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

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

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

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

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

提前致谢!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

有多种方法notify***()。为了有效利用它与位置。

答案 2 :(得分:0)

假设您的数据位于

之类的列表中
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();