我目前正致力于为我的应用添加搜索功能,但我遇到了一些问题。首先,我想清楚一点,我不想创建搜索活动,我只想使用Action Bar SearchView并按建议来执行搜索。
我已经创建了一个正确扩展的SearchView,虽然它似乎不能附加到我的Searchable Configuration xml对象。我添加了这行代码:
机器人:voiceSearchMode = “showVoiceSearchButton | launchRecognizer”
然而我的SearchView似乎并未受其影响。这行代码也是如此:
android:hint =“搜索我的东西”
再次,没有效果。
这是我在AndroidManifest.xml中的活动:
<activity
android:name="com.simon.holocountownapp.ItemListActivity"
android:label="Holo Countdown" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
这是我在onCreateOptionsMenu()中设置的SearchView:
searchView = (SearchView) menu.findItem(R.id.abSearch)
.getActionView();
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
searchView.setQueryRefinementEnabled(true);
总结一下事情: 用于我的searchable.xml的标签似乎没有附加到我的SearchView,我做错了什么?
感谢您花时间阅读本文,希望您能帮助我:)。
答案 0 :(得分:2)
您还需要添加android.intent.action.SEARCH
意图过滤器。请参阅代码here以供参考。
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
答案 1 :(得分:0)
我认为您还需要<meta-data>
元素作为<application>
元素的子元素
<application>
<meta-data
android:name="android.app.default_searchable"
android:value="com.simon.holocountownapp.ItemListActivity" >
</meta-data>
</application>
我不记得是否记录在案。我想我在其中一个示例应用程序中找到了它。