SearchView在文本更改侦听器或文本提交中未显示任何结果

时间:2016-02-05 06:24:48

标签: java android searchview android-optionsmenu

我正在尝试在SearchView的{​​{1}}中实施OptionsMenuFragmentonQueryTextChange无效。我不知道我哪里出错了。

菜单文件:

onQueryTextSubmit

我尝试从SearchView访问文本的片段中的部分:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/profile"
        android:orderInCategory="10"
        android:title="Profile"
        app:showAsAction="never">
    </item>
    <item
        android:id="@+id/settings"
        android:orderInCategory="11"
        android:title="Settings"
        app:showAsAction="never">
    </item>
    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Search"/>
</menu>

我在日志中看不到任何内容。我哪里错了?

1 个答案:

答案 0 :(得分:3)

我的大错!我在想什么!

以下是代码:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.browse_story_fragment, menu);

        MenuItem myActionMenuItem = menu.findItem(R.id.action_search);
        searchView = (SearchView) myActionMenuItem.getActionView();

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                // collapse the view ?
                //menu.findItem(R.id.menu_search).collapseActionView();
                Log.e("queryText",query);
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                // search goes here !!
                // listAdapter.getFilter().filter(query);
                Log.e("queryText",newText);
                return false;
            }


    });
        super.onCreateOptionsMenu(menu, inflater);
    }