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

使用launchMode=“SingleTop”创建搜索活动

丁雅逸
2023-03-14

我有一个SearchActivity,它来自具有以下代码的搜索菜单项:

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

清单上,搜索活动声明如下:

<activity
    android:name=".activity.Search"
    android:launchMode="singleTop"
    android:label="@string/app_name">

    <intent-filter>
        <action android:name="android.intent.action.SEARCH" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

    <meta-data
        android:name="android.app.default_searchable"
        android:value=".activity.Search" />

    <meta-data
        android:name="android.app.searchable"
        android:resource="@xml/searchable" />
</activity>

在搜索活动的< code>onCreate()和< code>onNewIntent()方法中,我处理传入的意图,但是如果我记录查询,无论我更改查询多少次,它只显示启动搜索活动的第一个查询。

我这里有什么遗漏吗?

共有1个答案

澹台新知
2023-03-14

尝试设置

    <activity
        android:name=".SearchableActivity"
        android:launchMode="singleInstance"
        android:screenOrientation="landscape"
        >
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable"/>

        <intent-filter>
            <action android:name="android.intent.action.SEARCH"/>
        </intent-filter>
    </activity>

xml是

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/search_hint"
android:label="@string/app_name" />

这是一个工作代码

 类似资料:
  • 我开始了Django-haystack和弹性搜索的实验。 使用: models.py 我想为上述模型创建一个搜索索引: 是否可以使用多个模型创建搜索索引。或者我必须为多个模型创建多个搜索索引。 注:两种型号完全独立。

  • 问题内容: 我正在尝试根据用户输入创建动态搜索查询。 用户可以不填写任何,部分或全部字段。 该查询在表中搜索符合所有要求的记录。 现在,我已经完成了研究,并且发现了执行此操作的多种方法。但是它们都不起作用,如果起作用了,那么它们就不可行了。 试图: 目前,我正在创建这样的查询: 该查询有效,但前提是您填写了所有字段。 我是从stackoverflow文章中得到的,我再也找不到了,它说: 如果用户已

  • 我有一个带有枚举列的实体: 其中枚举声明如下所示: 我尝试实施搜索规范: 我得到一个错误: 登上塔斯克斯塔斯。2769df0841;嵌套异常为java。lang.IllegalArgumentException:BoardingTaskStatus上没有枚举常量。2769df0841]具有根本原因java。lang.IllegalArgumentException:BoardingTaskStat

  • 好的,所以我目前正在尝试创建一个二叉搜索树,每个节点都包含对某个对象的引用,以及对其左侧子项的引用和对右子项的引用(总共3个变量)。左子项必须始终小于其父项,而右子项必须始终大于其父项。我必须创建两个方法:1种方法( contains()) 来检查元素是否在树中,以及一个add()方法将元素添加到树中的适当位置。 以下是BinarySearchTree类: 下面是TreeNode类(包含在Bina

  • 问题内容: 我正在使用索引器将数据从我的SQL数据库同步到Azure搜索服务。我的SQL视图中有一个字段,其中包含XML数据。列包含字符串列表。集合(Edm.String)中我的Azure搜索服务索引中的对应字段。在检查一些文档时,我发现Indexer不会将Xml(SQL)更改为Collection(Azure Search)。关于如何从Xml数据创建Collection的方法,是否有任何解决方法

  • 4.1.1.4 创建/使用内部活动 内部活动是禁止其他内部应用以外的应用使用的活动。 它们用于内部开发的应用,以便安全地共享信息和功能。 第三方应用可能会读取用于启动活动的意图。 因此,如果你将敏感信息放入用于启动活动的意图中,有必要采取对策来确保它不会被恶意第三方读取。 下面展示了创建内部活动的示例代码。 要点(创建活动): 定义内部签名权限。 不要指定taskAffinity。 不要指定lau