一个AndroidManifest.xml中有两个searchable.xml活动
我有一个Android应用程序,它有一些不同的活动用于浏览从RSS下载的文章和图像 我希望能够使用a一个AndroidManifest.xml中有两个searchable.xml活动,android,search,android-manifest,searchable,Android,Search,Android Manifest,Searchable,我有一个Android应用程序,它有一些不同的活动用于浏览从RSS下载的文章和图像 我希望能够使用asearchable.xml文件提供连接。我通过一次搜索成功地做到了这一点,使用: <activity android:name=".search.SearchResultsActivity" android:label="@string/search_results_activity_title" > <intent-filter> <
searchable.xml
文件提供连接。我通过一次搜索成功地做到了这一点,使用:
<activity android:name=".search.SearchResultsActivity"
android:label="@string/search_results_activity_title" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable_articles"/>
</activity>
按下ImageListActivity
中的搜索按钮时,我从searchable_articles.xml
获得默认搜索
如果我将default\u searchable
更改为SearchResultsImageActivity
,则始终启动图像搜索,而从不启动文章搜索
如果我删除了default\u searchable
元数据元素,并添加了searchable
meta data only selected活动,则不会启动搜索
我很确定这应该是可能的,但我不知道我做错了什么。我做这件事的一种方法是创建假活动,然后在需要时关闭这些活动
<activity android:name="activitySearchMain" />
<activity android:name="activitySearchSub1">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.ALTERNATIVE" />
<category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
<data android:scheme="user" />
</intent-filter>
</activity>
<activity android:name="activitySearchSub2">
<intent-filter>
<action android:name="com.sample.twitter.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.ALTERNATIVE" />
<category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
<data android:scheme="user" />
</intent-filter>
</activity>
并在单击按钮或单击其他组件时从onClick调用意图:如果您仅在该活动中覆盖搜索功能,则应防止搜索调用上升到应用程序级别。返回值控制调用是否向上传播
@Override
public boolean onSearchRequested() {
onPromptSearch();
return false; // don't go ahead and show the search box
}
在
Manifest
文件中,更新ImageListActivity
activity标记
<activity
android:name=".ImageListActivity"
...
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchResultsImageActivity" />
</activity>
你明白了吗?我不认为你可以用xml来做,因为资源是一对一的。您可以切换代码中的资源。我在活动模式中没有遇到过此活动。我不清楚这是在做什么。这是一种在点击按钮时切换活动的方法,但允许您将主要活动保留在后台。在从RSS提要搜索文档时非常有用。
Intent sourceIntent = getIntent();
Intent newIntent = new Intent(this, activitySearchSub2.class);
newIntent.setAction(activitySearchSub2.ACTION2);
newIntent.setData(sourceIntent.getData());
startActivity(newIntent);
finish();
@Override
public boolean onSearchRequested() {
onPromptSearch();
return false; // don't go ahead and show the search box
}
<activity
android:name=".ImageListActivity"
...
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchResultsImageActivity" />
</activity>