android searchable活动

时间:2013-10-18 07:06:05

标签: android android-search

IMO,搜索操作包含两个进程“收集用户输入”和“执行搜索工作”。

每个进程都需要一个活动活动,也就是说“收集用户输入”应该位于一个活动中,“执行搜索工作”也是如此。

正如导游所说:

  

当用户从搜索对话框或搜索中执行搜索时   小部件,系统创建一个Intent并将用户查询存储在其中。   然后系统启动您声明要处理的活动   搜索(“可搜索的活动”)并向其提供意图。

这让我认为作为JSP页面,a.jsp包含一个用于收集用户输入的表单,表单将提交给b.jsp或其他内容。

假设我有一个ActivityA来保存搜索小部件,ActivityB来处理搜索(这应该是这样的SearchableActivity}。

现在我想知道ActivityAActivityB是否应该是同一个?

采取以下xml祝贺:

    <activity
        android:name="com.app.MainActivity"
        android:label="@string/title_activity_main"
        android:launchMode="singleTop" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

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

这是否意味着MapActivity将处理整个应用程序中的所有搜索请求,或者它只能处理MapActivity的搜索请求?

1 个答案:

答案 0 :(得分:2)

来自文件

  

可搜索的活动是应用程序中的活动   根据查询字符串执行搜索并显示搜索   结果

     

当用户在搜索对话框或小部件中执行搜索时,   系统启动您的可搜索活动并将其提供给搜索   使用ACTION_SEARCH操作在Intent中查询。你可以搜索到的   activity会从intent的QUERY extra中检索查询   搜索您的数据并显示结果。

因此,如果您将android.app.searchable活动定义为其他活动,则<activity android:name=".OtherActivity" ... > <!-- enable the search dialog to send searches to SearchableActivity --> <meta-data android:name="android.app.default_searchable" android:value="com.app.MainActivity" /> </activity> 活动可以/将处理整个应用程序中的所有搜索请求,因为他们的搜索活动是您的可搜索活动。

{{1}}

http://developer.android.com/guide/topics/search/search-dialog.html