android searchView的关闭事件

这几天用到了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;
                }
            });
        }


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。