首页 > 代码库 > Android 屏蔽EditText的输入
Android 屏蔽EditText的输入
最近项目中要做一个选标签的效果,用户可以输入标签也可以直接选择标签。需求是标签只有一个,此时就需要在用户选中标签以后不能让用户继续输入,但是又可以删除标签。显然使用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; } });
效果如下:
Android 屏蔽EditText的输入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。