Android 如何在片段中调用RecyclerView适配器的方法

Android 如何在片段中调用RecyclerView适配器的方法,android,android-recyclerview,Android,Android Recyclerview,我有一个带有recyclerview的片段。在这里,我使用一个自定义方法用新的dataset更新适配器 public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter .ViewHolder>{ ..... public void addNewDataset(ArrayList<Integer> data) { ......

我有一个带有
recyclerview
的片段。在这里,我使用一个自定义方法用新的
dataset
更新适配器

public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter .ViewHolder>{
              .....
     public void addNewDataset(ArrayList<Integer> data) {
         ......
      notifyDataSetChanged();
    }
}

请帮帮我,先谢谢你

在适配器中公开方法。

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

在调用此addnewDataset之前,请检查数据对象引用没有空值

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();
    }
}
if(数据!=null){

myRecyclerAdapter.addNewDataset(数据); } 公共类MyRecyclerAdapter扩展了RecyclerView.Adapter{ 私有ArrayList mData; ..... public void addNewDataset(ArrayList数据){ if(mData==null){ mData=newarraylist(); } //如果您正在传递所有新的整数数组列表 mData=数据; //如果要将新数据添加到现有数组列表中 mData.addAll(数据); //根据您的要求使用上述代码的一个条件。 ...... notifyDataSetChanged(); } }
您是否尝试像这样将recyclerView adpter转换为call方法

((MyRecyclerAdapter)recyclerView.getAdapter()).addNewDataset(data);

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

myRecyclerAdapter.addNewDataset(index)是否被调用??编译器显示“无法解析方法MyRecyclerPater.addNewDataset()”错误消息似乎您正试图传递
索引
(表示
int
)但是
addNewDataset
需要
类型的
ArrayList
,因此创建一个具有所需参数类型的适当方法,并始终添加完整的详细信息,我们不知道什么是
索引
etc@PavneetSingh注释正确..更改如下AddNewDataSet(数据);数据为arraylist??编译器未识别myRecyclerAdapter.addNewDataset(数据);addNewDataset(数据),然后为适配器添加更多代码,说明如何初始化它,以及与LayoutManager相关的RecyclerView的另一个设置?
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)recyclerView.getAdapter()).addNewDataset(data);