我正试图在我的RecyclerView中实现搜索过滤器,就像在这篇文章中一样
我现在面临的主要问题是setOnQueryTextListener,在我的活动中:“在QueryTextListenerAdapter上找不到符号类”。这可能是我确实需要创造的东西,也可能是我没有在我的活动中实现的东西。它只是MainActivity扩展了AppCompatActivity。
我的 onCreateMenu活动选项是:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new OnQueryTextListenerAdapter() { @Override public boolean onQueryTextSubmit(String filterString) { adapter.getFilter().filter(filterString); return true; } });
return true;
}
我的适配器如下所示:
public class AnimeAdapter extends RecyclerView.Adapter<AnimeAdapter.AnimeViewHolder> implements INameableAdapter {
private List<Anime> items;
private List<Anime> filteredItems;
private AnimeFilter animeFilter;
有了这个:
public Filter getFilter() {
if(animeFilter == null)
animeFilter = new AnimeFilter(this, items);
return animeFilter;
}
private static class AnimeFilter extends Filter {
private final AnimeAdapter adapter;
private final List<Anime> originalList;
private final List<Anime> filteredList;
private AnimeFilter(AnimeAdapter adapter, List<Anime> originalList) {
super();
this.adapter = adapter;
this.originalList = new LinkedList<>(originalList);
this.filteredList = new ArrayList<>();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
filteredList.clear();
final FilterResults results = new FilterResults();
if (constraint.length() == 0) {
filteredList.addAll(originalList);
} else {
final String filterPattern = constraint.toString().toLowerCase().trim();
for (final Anime anime : originalList) {
if (anime.getTitle().contains(filterPattern)) {
filteredList.add(anime);
}
}
}
results.values = filteredList;
results.count = filteredList.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
adapter.filteredItems.clear();
adapter.filteredItems.addAll((ArrayList<Anime>) results.values);
adapter.notifyDataSetChanged();
}
我忘了什么?
提前致谢!
将OnQueryTextListenerAdapter
更改为onQueryTestListener
SearhView.OnQueryTextListener
我使用SearchView过滤我的应用程序的RecyclerView,就像这篇文章中描述的一样: 如何使用SearchView筛选RecyclerView 一开始一切看起来都很好,我可以根据需要过滤RecyclerView,但是经过一些尝试,出现了两个问题: 如果我在SearchView中输入文本太快,应用程序会崩溃,并出现以下日志: E/AndroidRuntime: FATAL EXCEPTI
我正试图在我的RecyclerView中实现搜索过滤器,就像在这篇文章中一样 我已经对它进行了调试,它确实按照预期过滤了项目,但列表在应用程序中似乎没有改变。一、 E:我过滤一个名字,有7个结果,在屏幕上是原始列表。 我的 onCreateMenu活动选项是: 我的适配器如下所示: 我忘了什么? 提前致谢!
Android通用搜索功能似乎有很好的系统支持,除了语音搜索之外,还可以显示搜索建议,如最近的查询建议和自定义建议。 此框架要求声明搜索活动。该活动以意向获取查询,并将搜索结果呈现给列表视图。 我对此有两个问题: 1-我想在当前活动中进行搜索(我在应用程序栏上有一个搜索视图)。那么,该活动是否会重新启动?那会很奇怪。我应该发送到不可见的活动并获取结果吗?这可能吗? 2-我可以使用RecyclerV
我进行一个API调用,得到一个响应,并将其存储在中。我有1个和1个要填充。现在,当我得到响应时,它是根据JSON(即顺序)的,但当我尝试在适配器中设置它时,它是随机的(即没有顺序) 按顺序如下: 现在,在这个适配器中,ImagePath不是按照以下顺序:
我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我
问题内容: 我是这个框架的新手,因此练习Angularjs并遵循网站上提供的教程。 有一个示例,我们可以搜索表中存在的数据,示例如下, 在上面的代码中,我可以使用两个不同的输入来搜索手机,即按型号名称搜索和按公司名称搜索,以上代码运行良好, 但是,如果我需要使用选择选项中存在的搜索类型进行搜索,该怎么办? 代码如下 从上面的代码中,您可以看到我正在尝试通过选择框中显示的“姓名”,“公司”或“名称”