2 myc 100 myc_100 于 2012.10.17 11:45 提问

Android中用代码实现editable=“false”问题

在布局中我们可以通过android:editable attribute编辑属性来设置EditText小部件的状态。但是用代码编写怎么设置这个状态呢?想实现的功能是在不同条件下都能编辑EditText小部件的状态。

4个回答

znl_12
znl_12   2012.10.24 11:38
已采纳

设置InputFilter会拒绝所有的改变,是一个很好的解决方案:

editText.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) : "";
        }
    }
});
myq_26
myq_26   2012.10.17 13:27
  editText.setFocusable(false);
  editText.setClickable(false);

这样就保证EditText不能被选中和光标指向,所以也不能被编辑。

ueryueryuery
ueryueryuery   2012.10.17 15:27

LS的方法太不友好了,用户点啊点啊点不上去以为是死机了。

editText.setEnable(false)
editText.setMaxLength(0)

都是些不错的选择。

myc_100
myc_100 嗯,这个答案也不错,哈哈。要编辑代码格式哦!
5 年多之前 回复
liaozhaohai
liaozhaohai   2015.11.16 20:45

editText.setEnable(false) 这个太死。写了这个,就不能实现其他事件了,点击、双击事件,属性改变等。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!