码迷,mamicode.com
首页 > 移动开发 > 详细

Android 屏蔽EditText的输入

时间:2014-12-08 21:11:03      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   io   ar   color   使用   sp   

最近项目中要做一个选标签的效果,用户可以输入标签也可以直接选择标签。需求是标签只有一个,此时就需要在用户选中标签以后不能让用户继续输入,但是又可以删除标签。显然使用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的输入

标签:android   style   blog   http   io   ar   color   使用   sp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!