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

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

设置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) : "";
        }
    }
});
  editText.setFocusable(false);
  editText.setClickable(false);

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

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

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

都是些不错的选择。

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