searchview oncloselistener不工作

时间:2016-03-03 18:41:03

标签: java android

我需要在菜单中为oncloselistener设置searchview,但oncloselistener无效。我不确定如何将actionexpand设置为searchview

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    final SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setQueryHint("جستجو...");
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }
    });
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    return super.onOptionsItemSelected(item);
}

1 个答案:

答案 0 :(得分:3)

上周我遇到了同样的问题!令我惊讶的是,您没有将监听器设置为SearchView,您实际将其设置为扩展它的菜单项。 这正是我在onCreateOptionsMenu中所要做的:

        item = menu.findItem(R.id.friend_fragment_search_icon);
        searchView = (SearchView) MenuItemCompat.getActionView(item);

        // When using the support library, the setOnActionExpandListener() method is
// static and accepts the MenuItem object as an argument
        MenuItemCompat.setOnActionExpandListener(item, new MenuItemCompat.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                //the searchview has been closed
                return true;  // Return true to collapse action view
            }

            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                mBtnFindFriends.hide();
                return true;  // Return true to expand action view
            }
        });

friend_fragment_search_icon是打开SearchView的菜单图标。 menu.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dingding="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/friend_fragment_search_icon"
        android:title="@string/search_title"
        android:icon="@drawable/ic_search_white_48dp"
        dingding:showAsAction="always|collapseActionView"
        dingding:actionViewClass="android.support.v7.widget.SearchView" />
</menu>