Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在适配器类之外更新RecyclerView适配器_Java_Android_Android Recyclerview - Fatal编程技术网

Java 如何在适配器类之外更新RecyclerView适配器

Java 如何在适配器类之外更新RecyclerView适配器,java,android,android-recyclerview,Java,Android,Android Recyclerview,我正在制作一个android应用程序,它允许用户在editText中输入关键字,当他们点击submit时,下面的recyclerview将显示API请求的结果 我的recyclerView适配器类中有一个updateList()方法 list = savedInfo.getResult(); // get updated list from a singleton class notifyDataSetChanged(); // update the recyclerView 我在成功发出AP

我正在制作一个android应用程序,它允许用户在editText中输入关键字,当他们点击submit时,下面的recyclerview将显示API请求的结果

我的recyclerView适配器类中有一个updateList()方法

list = savedInfo.getResult(); // get updated list from a singleton class
notifyDataSetChanged(); // update the recyclerView
我在成功发出API请求后调用此方法。但是,它现在正在工作,recyclerView没有更新

mSearchBox是允许用户输入关键字的编辑文本,这是onEditorAction,它将进行API调用,如果调用成功,它将调用UpdateList(),然后适配器将获得更新的列表并执行notifyDataSetChanged()

另外,下面是设置适配器的步骤

    final ResultListAdapteradapter = new ResultListAdapter();
    mResult.setAdapter(adapter);
    mResult.setLayoutManager(new LinearLayoutManager(getContext()));
调试步骤:我试图设置断点,发现API请求和我的Singleton类都在工作,问题只是RecyclerView

非常感谢你

当你这样做的时候

list = savedInfo.getResult();
notifyDataSetChanged();
每次创建新的列表实例时,旧的列表实例不会被引用到任何地方。因此,您应该做的不是分配给列表

list.clear()
list.addAll(savedInfo.getResult());
notifyDataSetChanged();

如果之前没有初始化
列表
,请不要忘记初始化。

我们需要查看整个
片段
/
活动
,其中实例化了
回收视图
适配器
,以及整个
适配器
类。
list.clear()
list.addAll(savedInfo.getResult());
notifyDataSetChanged();