Android Searschable配置未附加到SearchView

时间:2013-02-16 16:02:53

标签: android search configuration android-searchmanager searchview

我目前正致力于为我的应用添加搜索功能,但我遇到了一些问题。首先,我想清楚一点,我不想创建搜索活动,我只想使用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,我做错了什么?

感谢您花时间阅读本文,希望您能帮助我:)。

2 个答案:

答案 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>

我不记得是否记录在案。我想我在其中一个示例应用程序中找到了它。