您的位置:首页 > 移动开发 > Android开发

android searchView的关闭事件

2014-09-22 14:06 1776 查看

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

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

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

2 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;
                }
            });
        }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android searchView close