2011-04-15 65 views
0

我正在尝试实现两个不同的可搜索活动,一个用于蜂窝(带搜索小部件),另一个用于非蜂窝(带搜索对话框)。如何在Android清单中声明2个搜索活动

我的清单看起来像:

<activity android:name=".activities.Search" 
       android:theme="@style/NoTitleTheme" 
       android:configChanges="orientation|keyboardHidden" 
       android:launchMode="singleTop"> 
        android:enabled="@bool/disableForNonHoneycomb" 
       <intent-filter> 
        <action android:name="android.intent.action.SEARCH" /> 
       </intent-filter> 
        <meta-data android:name="android.app.searchable" 
         android:resource="@xml/searchable" 
         android:value=".activities.Search"/> 
      </activity> 
      <activity android:name=".activities.SearchHoneycomb" 
       android:theme="@style/CustomTheme" 
       android:configChanges="orientation|keyboardHidden" 
        android:enabled="@bool/enableForNonHoneycomb" 
       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" 
          android:value=".activities.SearchHoneycomb"/> 
      </activity> 

而且,我用下面的代码来获取搜索的配置和设置在我的活动搜索视图。

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
_searchView = (SearchView) mCustomView.findViewById(R.id.action_bar_searchwidget); 
_searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

问题是,当我使用搜索小部件时,它不会启动SearchHoneycomb活动。我该如何做这项工作?

谢谢。

回答

4

因此,经过大量的调查......没有办法有2个可搜索的活动,因为Android清单只接受1个元数据进行默认搜索。 我通过使用具有默认可搜索元数据的搜索对话框和实现了搜索窗口小部件的querytextlistener来解决问题。

相关问题