安卓本地搜索

2024-02-02

我正在尝试在我的活动中实现本地搜索。我已经向清单文件添加了适当的意图过滤器和元数据标记,但如果我单击“搜索”按钮,它会调用标准 Android 搜索框。我的问题是什么?

清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nixsolutions.invertigation.android.dataprovider"
android:versionCode="1"
android:versionName="1.0">
<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:debuggable="true">


    <provider
        android:name="NoteProvider"
            android:authorities="com.nixsolutions.investigation.android.NoteProvider">
    </provider>
    <activity
        android:name="NotesList">
        <intent-filter>
            <action
                android:name="android.intent.action.MAIN" />
            <category
                android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
        <intent-filter>
            <action
                android:name="android.intent.action.SEARCH" />
            <category
                android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>
</application>
<uses-sdk
    android:minSdkVersion="7" />

</manifest> 

可搜索.xml:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
android:label="Custom search"
android:hint="Custom hint"
android:searchMode="showSearchLabelAsBadge"
/>

我认为您还需要一项标记为(在应用程序级别)的活动作为提供搜索的活动,通过:

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

(用适当的值替换android:value)

E.g.:

<application android:icon="@drawable/icon" android:label="@string/app_name"
            android:debuggable="true"  android:allowBackup="true"
    >
    <meta-data android:name="android.app.default_searchable"
               android:value=".MySearchActivity" />

    <activity android:name=".MySearchActivity">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data android:name="android.app.searchable"
               android:resource="@xml/searchable"/>
    </activity>

您仅为活动指定的方式仅在该活动中启用搜索。 仅在应用程序级别添加元数据标签才能搜索所有活动。

See here http://github.com/commonsguy/cw-advandroid/tree/master/Search/Lorem/以获得完整的搜索项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安卓本地搜索 的相关文章

随机推荐