我的Android应用程序中有很多活动,需要使用SearchView实现ActionBar。
我最初只是将以下几行添加到我的SearchActivity中:
<activity android:name=".activity.SearchActivity" 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>
但是,searchManager.getSearchableInfo(getComponentName());
从null
调用后,onCreateOptionsMenu
在AnotherActivity1
返回了intent-filter
。
因此,我还将android.app.searchable
和AnotherActivity1
元数据添加到AnotherActivity1
,这适用于{{1}} SearchView。
但是我有很多这样的活动 - 我应该只为这些活动复制粘贴这个XML片段,还是有一些更优雅的解决方案我不知道?
答案 0 :(得分:0)
使用
searchManager.getSearchableInfo(new ComponentName(this, SearchActivity.class));
而不是
searchManager.getSearchableInfo(getComponentName());
然后我必须将intent-filter
和meta-data
仅应用于SearchActivity
。