Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个AndroidManifest.xml中有两个searchable.xml活动_Android_Search_Android Manifest_Searchable - Fatal编程技术网

一个AndroidManifest.xml中有两个searchable.xml活动

一个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> <

我有一个Android应用程序,它有一些不同的活动用于浏览从RSS下载的文章和图像

我希望能够使用a
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>