如何在Fragment中调用RecyclerView适配器的方法

3
我有一个带有recyclerview的片段。在这里,我使用自定义方法来更新带有新dataset的适配器。
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter .ViewHolder>{
              .....
     public void addNewDataset(ArrayList<Integer> data) {
         ......
      notifyDataSetChanged();
    }
}

我在我的Fragment中以以下方式调用了该方法。
myRecyclerAdapter.addNewDataset(data);

Please help me, Thank you in advance.


myRecyclerAdapter.addNewDataset(index) 被调用了吗? - sasikumar
编译器显示“无法解析方法myRecyclerApater.addNewDataSet()”错误消息。 - kashyap
1
看起来你正在尝试传递一个指示为“int”的变量index, 但是addNewDataset期望一个类型为<Integer>ArrayList,所以请创建一个带有所需参数类型的适当方法,并始终添加完整的细节,因为我们不知道index等是什么。 - Pavneet_Singh
1
@PavneetSingh 的评论是正确的..像那样改变。 - sasikumar
添加新数据集(addNewDataset);数据(data)是ArrayList吗? - sasikumar
显示剩余2条评论
3个回答

3
您是否尝试过使用recyclerView适配器而不是像这样调用方法?
((MyRecyclerAdapter)recyclerView.getAdapter()).addNewDataset(data);

编译器在默认适配器中搜索addNewDataset()方法。

0

在适配器中创建公共方法。

 public void addNewDataset(ArrayList<Integer> data) {
         ......
      notifyDataSetChanged();
    }

现在在片段中创建适配器对象:

MyAdapter adapter = new MyAdapter(); //make object of adpater like this
adapter.addNewDartaset(data);

0
在调用addnewDataset之前,请确保数据对象引用不为null值。
if(data!=null){
     myRecyclerAdapter.addNewDataset(data);    
}

public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter .ViewHolder>{
     private ArrayList<Integer> mData;
              .....
     public void addNewDataset(ArrayList<Integer> data) {
      if(mData==null){
         mData = new ArrayList<Integer>();
      }
      //If in case you are passing all new array list of integers
      mData = data;
      //If you want to add new one data to existing array list
      mData.addAll(data);

      //Use one condition of code from above on the basis of your requirement.
         ......
      notifyDataSetChanged();
    }
}

编译器无法识别 myRecyclerAdapter.addNewDataset(data); - kashyap
添加新数据集(data) - kashyap
然后添加更多的适配器代码,包括如何初始化它以及与LayoutManager相关的RecyclerView设置? - Ready Android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接