当前位置: 首页 > 知识库问答 >
问题:

使用搜索视图和搜索建议以及语音搜索筛选回收视图

利海阳
2023-03-14

Android通用搜索功能似乎有很好的系统支持,除了语音搜索之外,还可以显示搜索建议,如最近的查询建议和自定义建议。

此框架要求声明搜索活动。该活动以意向获取查询,并将搜索结果呈现给列表视图。

我对此有两个问题:

1-我想在当前活动中进行搜索(我在应用程序栏上有一个搜索视图)。那么,该活动是否会重新启动?那会很奇怪。我应该发送到不可见的活动并获取结果吗?这可能吗?

2-我可以使用RecyclerView而不是ListView吗?我以为ListView被弃用了,取而代之的是RecyclerView。

共有1个答案

居晗日
2023-03-14

我想在当前活动中执行搜索(我在应用程序栏上有一个搜索视图)。那么,该活动是否会重新启动?

否(如果您实现了搜索权限)

我可以使用RecyclerView而不是ListView吗?我认为ListView被弃用,取而代之的是RecyclerView。

是的,您可以使用< code > recycle view

基本上,要在< code > recycle view 中实现搜索,您必须在适配器类中创建一个公共方法,带有数据类的< code>List参数,如下所示:

 public void setFilter(ArrayList<Items> ItemList){
    Items = new ArrayList<>();
    Items.addAll(ItemList);
    notifyDataSetChanged();
  //Items will be your custom data class
}

然后在您的Activity中,在实现SearchView后,在要实现搜索的位置执行搜索。OnQueryTextListener接口和重写onQueryTextSubmit中的方法

 @Override
public boolean onQueryTextChange(String newText) {
    newText = newText.toLowerCase();
    ArrayList<Items> ItemArrayList = new ArrayList<>();
    for(Items Item : Items) //Items your data class containg data provided to adapter
    {
        String name = Item.getTitle().toLowerCase(); // getTitle or getName dependes what you have in Item class
        if(name.contains(newText))
            ItemArrayList.add(Item);
    }
    adapter.setFilter(ItemArrayList); // adapter will be instance of adapter class
    return true;
}

 类似资料:
  • Navicat 提供筛选功能,让你在连接窗格、对象列表窗格、模型设计器和其他树状结构搜索对象。 在连接窗格或其他树状结构,点击该窗格或树来聚焦并直接筛选字符串。如果连接窗格中的连接已打开,筛选也会同时应用到连接中的数据库对象。 在对象列表窗格,点击 Navicat 主窗口的 ,并在搜索框里输入筛选字符串。在模型设计窗口,简单地在搜索框里输入筛选字符串。 你可以移除筛选,只需删除筛选字符串。

  • “对象筛选”能让你在 Navicat Cloud 筛选模型,在视图设计器中筛选树状结构、以及在画布中筛选包含筛选字符串的表、实体或视图。 只需在“搜索”文本框中指定一个筛选字符串。若要移除筛选,只需删除筛选字符串。

  • “对象筛选”能让你在 Navicat Cloud 筛选模型,以及在画布中筛选包含筛选字符串的表、实体或视图。 只需在“搜索”文本框中指定一个筛选字符串。若要移除筛选,只需删除筛选字符串。 “树筛选”能让你在浏览器或檢视图设计器中筛选包含筛选字符串的树状结构。 点击树来聚焦并直接指定筛选字符串。若要移除筛选,只需删除筛选字符串。

  • Navicat 提供筛选功能,让你在导航窗格、对象选项卡、模型设计器和其他树状结构搜索对象。 在导航窗格或其他树状结构,点击该窗格或树来聚焦并直接输入搜索字符串。如果导航窗格中的连接已打开,筛选也会同时应用到连接中的数据库对象。 在对象选项卡,点击 ,并在“搜索”文本框里输入搜索字符串。 在模型设计器窗口,简单地在“搜索”文本框里输入搜索字符串。 你只需删除搜索字符串就可移除筛选。

  • Navicat 提供筛选功能,让你在导航窗格、对象选项卡、模型设计器和其他树状结构搜索对象。 简单地在“搜索”文本框里直接输入搜索字符串。如果导航窗格中的连接已打开,筛选也会同时应用到连接中的数据库对象。 你只需删除搜索字符串就可移除筛选。

  • Navicat 提供筛选功能,让你在导航窗格、对象选项卡、模型设计器和其他树状结构搜索对象。 简单地在“搜索”文本框里直接输入搜索字符串。如果导航窗格中的连接已打开,筛选也会同时应用到连接中的数据库对象。 你只需删除搜索字符串就可移除筛选。