每次[duplicate]时,recyclerView中的搜索过滤器崩溃

问题描述 投票:0回答:2
我正在尝试在RecyclerView中实现EditText搜索过滤器。

这是我到目前为止尝试过的:

Tab1.java

private ArrayList<NewsModel> mExampleList; mExampleList = new ArrayList<>(); search.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { filter(s.toString()); } }); private void filter(String text) { ArrayList<NewsModel> filteredList = new ArrayList<>(); for (NewsModel item : mExampleList) { if (item.getTitle().toLowerCase().contains(text.toLowerCase())) { filteredList.add(item); } } newsAdapter.filterList(filteredList); }

Adapter.java

public void filterList(ArrayList<NewsModel> filteredList) { newsModelList = filteredList; notifyDataSetChanged(); }
我该如何解决此错误?

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void com.devapps.sakoriassam.NewsAdapter.filterList(java.util.ArrayList)'
android nullpointerexception recycler-adapter
2个回答
1
投票
您应先实例化newsAdapter,然后再添加侦听器以进行搜索编辑

0
投票
根据提供的信息,您似乎尚未在NewsAdapter()中初始化onCreateView()您可以在onCreateView()中执行类似的操作

newsAdapter = new NewsAdapter(); recyclerView.setAdapter(newsAdapter);

这应该在调用filterList()方法之前完成。让我知道这是否适合您]
© www.soinside.com 2019 - 2024. All rights reserved.