首页 > 移动平台 > 详细

Android 屏蔽EditText的输入

时间:2014-12-08 21:09:48      阅读:242      评论:0      收藏:0      [点我收藏+]

最近项目中要做一个选标签的效果,用户可以输入标签也可以直接选择标签。需求是标签只有一个,此时就需要在用户选中标签以后不能让用户继续输入,但是又可以删除标签。显然使用setEnable(false)是不可行的

最后找到了一个方法,使用InputFilter这个类对所有的字段进行过滤,不管用户输入什么都显示一个空字符串

etActionTag.setFilters(new InputFilter[] { 
                    new InputFilter() {    
                    public CharSequence filter(CharSequence src, int start, int end, Spanned dst, int dstart, int dend) {   
                            return src.length() < 1 ? dst.subSequence(dstart, dend) : "";   
                        }   
                    } }); 

这样做就可以保证用户没法进行输入了。但是确出现了用户同时也无法删除的情况。

于是考虑对删除键进行监听,在按了删除键,同时输入框有设置过滤的时候直接把输入框设置为空。然后去掉输入框的过滤,然后就是实现了这个效果。

    etActionTag.setOnKeyListener(new OnKeyListener(){

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if(etActionTag.getFilters()!=null){
                    if(keyCode==KeyEvent.KEYCODE_DEL){
                        etActionTag.setFilters(new InputFilter[]{});
                        etActionTag.setText("");
                        return true;
                    }
                }
                return false;
            }
            
        });

 

效果如下:

bubuko.com,布布扣

 

Android 屏蔽EditText的输入

原文:http://www.cnblogs.com/gejs/p/4151920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!