我想知道的是,如果我将适配器设置为这样的recyclerview:
mRecyclerView.setAdapter(new myRecyclerAdapter(mCustomObject.getDataSet()));
我可以更新数据集并通知适配器吗?
mCustomObject.getDataSet().add(XPTO);
myRecyclerAdapter.notifyDataSetChanged();
或者我是否需要在适配器中获取数据集?
提前致谢!
答案 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();