android搜索无法正常工作

Hyp*_*oyz 14 search android searchable

我正在寻找一个可搜索的动作栏.我遇到了一个问题,即操作栏不会对可搜索的活动做出反应.就是这样,我在动作栏的可搜索文本中输入了一些东西,然后点击了提交但没有发生任何事情.调试跟踪显示我的searchresultactivity中的代码永远不会执行.所以我想知道可搜索的配置是否有问题.那么这一次我认为我已经清楚地解释了这个问题,我不期待任何负面的投票,没有任何言语甚至吐!

我按照开发人员文档的说明开始使用manifest.xml,在searchresult活动中添加了元数据:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".GermanDictionaryActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SearchResultsActivity">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter> 
        <meta-data android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

然后我用我的菜单初始化了searchview:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.srhbar, menu);

    // Get the SearchView and set the searchable configuration
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    mSrhView = (SearchView) menu.findItem(R.id.search).getActionView();
    mSrhView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    mSrhView.setSubmitButtonEnabled(true);

    return true;
}
Run Code Online (Sandbox Code Playgroud)

菜单中可搜索的项目:

<item android:id="@+id/search"
    android:title="@string/srh_title"
    android:showAsAction="collapseActionView|ifRoom"
    android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

任何相关的答案表示赞赏!

ein*_*rne 16

我通过改变这一行解决了这个问题:

searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(getApplicationContext(), SearchResultsActivity.class)));
Run Code Online (Sandbox Code Playgroud)

  • 噢,感谢上帝的回答。这为我解决了。:-) (2认同)
  • 这应该在android文档中。节省了我的时间。谢谢。 (2认同)