Android SearchView未调用选项ItemSelected

Android SearchView未调用选项ItemSelected,android,android-actionbar,searchview,Android,Android Actionbar,Searchview,“错误”很奇怪,其他时候我做过,但从来没有解决过这个问题 如果我将“appname:actionViewClass=“android.support.v7.widget.searchview”放在菜单上,我的searchview不会调用OnOptions ItemSelected 显示 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <activity

“错误”很奇怪,其他时候我做过,但从来没有解决过这个问题

如果我将“appname:actionViewClass=“android.support.v7.widget.searchview”放在菜单上,我的searchview不会调用OnOptions ItemSelected

显示

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
 <activity
            android:name=".DashBoardActivity"
            android:label="">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

错误是,没有调用选项项Selected,我需要操作searchview

我知道现在已经太晚了,但如果其他人发现它在将来有用,我仍然在写答案。 昨天我遇到了同样的问题,我通过更改菜单xml文件中的以下行来解决它

appname:showAsAction="always"


您必须在
appname:showAsAction
中添加
collapseActionView
以及
always
以启用在searchView上选择的选项项,每当我将collapseActionView添加到菜单项时,操作栏标题在searchView单击时隐藏。这就是为什么我一直在搜索将其保留为


android:showAsAction=“always”
请注意,提交搜索结果时不应使用
SearchView.setOnQueryTextFocusChangeListener

应该改用
SearchView.setOnQueryTextListener

以下是搜索提交侦听器的示例:

        case R.id.action_search:
            mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

                @Override
                public boolean onQueryTextSubmit(String query) {
                    Toast.makeText(getActivity(),
                            getString(R.string.abc_searchview_description_submit),
                            Toast.LENGTH_SHORT)
                            .show();
                    updateUI(query);
                    return true;
                }

                @Override
                public boolean onQueryTextChange(String query) {
                    // Clear search
                    if (query.equals("")) {
                        updateUI(null);
                    }
                    return true;
                }
            });

你没有告诉我们你犯了什么错误…哦,天哪!这为我解决了整个问题!WTF?为什么有效?我尝试了
ifRoom
始终
,但只有
始终| collapseActionView
有效。请解释一下?2016年9月,这个问题仍然存在,谢谢你的解决方案!功能我担心答案是,操作不是选项,如果你定义了actionLayout甚至actionViewClass,你会有不同的东西。actionViewClass甚至actionLayout会导致一个可展开的操作,第一次单击总是“展开”,但不是onOptionItemSelected
appname:showAsAction="always"
appname:showAsAction="always|collapseActionView"
        case R.id.action_search:
            mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

                @Override
                public boolean onQueryTextSubmit(String query) {
                    Toast.makeText(getActivity(),
                            getString(R.string.abc_searchview_description_submit),
                            Toast.LENGTH_SHORT)
                            .show();
                    updateUI(query);
                    return true;
                }

                @Override
                public boolean onQueryTextChange(String query) {
                    // Clear search
                    if (query.equals("")) {
                        updateUI(null);
                    }
                    return true;
                }
            });