android searchView的关闭事件

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

这几天用到了android的searchView,想在关闭的时候触发一个事件。

首先看了下,发现有个setOnCloseListener,大喜过望,认为就是它了,结果点了半天没有反应,然后上午搜搜,总结一下无外乎说的以下几种情况:

1 源码里面,实现setOnCloseListener里的close()方法,有一个是清空输入框,也许会和searchView的setOnQueryTextListener接口onQueryTextSubmit(String query)冲突

setOnCloseListener只能在3.2下才能有效,而ICS貌似不行

而原生的SeachView 是 (SearchView) menuItem.getActionView();

那么就可以从menuItem入手,看其中有不有什么事件响应,一看,当然有

最后查了下资料,果然是这样,如下:

if (currentVersion >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            menuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
                @Override
                public boolean onMenuItemActionExpand(MenuItem item) {
                    return true;
                }

                @Override
                public boolean onMenuItemActionCollapse(MenuItem item) {
                    //TODO 添加关闭事件
                    return true;
                }
            });
        } else {
            mSearchView.setOnCloseListener(new SearchView.OnCloseListener() {
                @Override
                public boolean onClose() {
                   //TODO 添加关闭事件
                    return false;
                }
            });
        }


转载于:https://my.oschina.net/luozheng/blog/316955

你可能感兴趣的:(android searchView的关闭事件)