android – 避免PopupWindow抓住焦点

android – 避免PopupWindow抓住焦点,第1张

概述我有一个EditText,可以在每个按键上更新PopupWindow.如果我使用.setFocusable(true)创建PopupWIndow,那么它会抓住焦点而我无法继续输入.但是,如果我使用.setFocusable(false),PopupWindow中的ListView不会触发OnItemClickedListener. 是否可以创建一个PopupWindow而不会抓住焦点,但仍然可以让 我有一个EditText,可以在每个按键上更新PopupWindow.如果我使用.setFocusable(true)创建PopupWIndow,那么它会抓住焦点而我无法继续输入.但是,如果我使用.setFocusable(false),PopupWindow中的ListVIEw不会触发OnItemClickedListener.

是否可以创建一个PopupWindow而不会抓住焦点,但仍然可以让它内部的小部件可点击?

(PopupWIDow不用于自动完成,所以我认为autoCompleteTextVIEw不是我需要的)

解决方法 我想你可以使用ListPopupWindow.它为您处理一些焦点问题.这是一个非常简单的代码.它仍然需要添加更多的听众以满足您的需求.但它确定了焦点问题.

ListPopupWindow popup;EditText editText;String[] strAry = {"a","2","3","4","5","6","7","8","9"};editText=(EditText)this.findVIEwByID(R.ID.editText);popup= new ListPopupWindow(this.getApplicationContext());popup.setAdapter(new ArrayAdapter(this,androID.R.layout.simple_expandable_List_item_1,strAry));popup.setAnchorVIEw(editText);popup.setinputMethodMode(ListPopupWindow.input_METHOD_NEEDED);editText.setonClickListener(new OnClickListener(){    @OverrIDe    public voID onClick(VIEw eventVIEw) {        if(!popup.isShowing()){            popup.setinputMethodMode(ListPopupWindow.input_METHOD_NEEDED);            popup.show();        }    }});editText.addTextChangedListener(new s(){    @OverrIDe    public voID afterTextChanged(Editable arg0) {}    public voID beforeTextChanged(CharSequence arg0,int arg1,int arg2,int arg3) {}    @OverrIDe    public voID onTextChanged(CharSequence arg0,int arg3) {        if(!popup.isShowing()){            popup.setinputMethodMode(ListPopupWindow.input_METHOD_NEEDED);            popup.postshow();        }    }});
总结

以上是内存溢出为你收集整理的android – 避免PopupWindow抓住焦点全部内容,希望文章能够帮你解决android – 避免PopupWindow抓住焦点所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存