android– 如何知道ActionView在 *** 作栏中何时关闭?

android– 如何知道ActionView在 *** 作栏中何时关闭?,第1张

概述我有一个问题:我在Fragment中有一个listView,我实现了一个searchView(actionView)来使用searchViewonQueryTextChange事件过滤listView中的列表.我在这部分没有问题,一切正常.adapter=newListaEmpleadosAdapter(getActivity(),empleadoItems,context);SearchViewsearchVie

我有一个问题:我在Fragment中有一个ListVIEw,我实现了一个searchVIEw(actionVIEw)来使用searchVIEw onqueryTextChange事件过滤ListVIEw中的列表.我在这部分没有问题,一切正常.

adapter = new ListaEmpleadosAdapter(getActivity(), empleadoItems, context);SearchVIEw searchVIEw = (SearchVIEw) menu.findItem(R.ID.menu_buscar).getActionVIEw();SearchVIEw.OnqueryTextListener queryTextListener = new SearchVIEw.OnqueryTextListener() {    @OverrIDe    public boolean onqueryTextsubmit(String s) {        return false;    }    @OverrIDe    public boolean onqueryTextChange(String s) {        try {            adapter.getFilter().filter(s);            adapter.notifyDataSetChanged();        } catch (Exception e) {            System.err.println("ERROR FragmentEmpleado -> " + e.toString());        }        return true;    }};

当我第一次搜索并按下后退按钮时,软键盘关闭.这很正常.当我再次按下后退按钮时,searchVIEw关闭,这是正常的,但列表不会返回初始项目.

当searchVIEw被折叠时(因为searchVIEw.setonCloseListener不起作用)恢复初始列表项,我怎么能得到这个事件?或者以任何方式恢复删除适配器过滤器的初始列表项…

历史:

>员工名单

>具有特定过滤器的员工列表(按下第一个后退按钮后,键盘关闭)

>已关闭searchVIEw的员工列表(但在按下第二个按钮后没有恢复原始列表)

非常感谢!

解决方法:

SearchVIEw上有一个方法在搜索视图崩溃时被触发(onActionVIEwCollapsed),但没有任何事件.为了解决这个问题,我创建了自己的继承自SearchVIEw的类,并定义了2个事件来捕获折叠和扩展.该类还提供了连接事件处理程序的方法.

public class MySearchVIEw extends SearchVIEw {    OnSearchVIEwCollapsedEventListener mSearchVIEwCollapsedEventListener;    OnSearchVIEwExpandedEventListener mOnSearchVIEwExpandedEventListener;    public MySearchVIEw(Context context) {        super(context);    }    @OverrIDe    public voID onActionVIEwCollapsed() {        if (mSearchVIEwCollapsedEventListener != null)            mSearchVIEwCollapsedEventListener.onSearchVIEwCollapsed();        super.onActionVIEwCollapsed();    }    @OverrIDe    public voID onActionVIEwExpanded() {        if (mOnSearchVIEwExpandedEventListener != null)            mOnSearchVIEwExpandedEventListener.onSearchVIEwExpanded();        super.onActionVIEwExpanded();    }    public interface OnSearchVIEwCollapsedEventListener {        public voID onSearchVIEwCollapsed();    }    public interface OnSearchVIEwExpandedEventListener {        public voID onSearchVIEwExpanded();    }    public voID setonSearchVIEwCollapsedEventListener(OnSearchVIEwCollapsedEventListener eventListener) {        mSearchVIEwCollapsedEventListener = eventListener;    }    public voID setonSearchVIEwExpandedEventListener(OnSearchVIEwExpandedEventListener eventListener) {        mOnSearchVIEwExpandedEventListener = eventListener;    }}
总结

以上是内存溢出为你收集整理的android – 如何知道ActionView在 *** 作栏中何时关闭?全部内容,希望文章能够帮你解决android – 如何知道ActionView在 *** 作栏中何时关闭?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1110704.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存