7月 262016
 

可以通过以下几种方法实现EditText的只读属性

1. 方法一:使用EditText的android:Editable属性

  将EditText的Editable属性设置为false后,EditText就成只读了,缺点是不能在java代码中动态设置,而且这个属性android官方已经不推荐使用了,官方的解释是要想一个view可编辑(Editable=true)可以用EditText,不可编辑用TextView就可以了 8-O 

2. 方法二:使用TextView替代

  既然TextView和EditText就差一个可编辑,那么用一个TextView去替代EditText好了。只读的时候显示TextView隐藏EditText,编辑的时候显示EditText隐藏TextView,不过TextView必须和EditText用同样的样式,以不让用户查觉到组件变换了。本人没亲测这种方法,大家有兴趣的话可以试试。

3. 方法三:设置EditText的keylistener来实现

  代码不多,直接把完整的代码贴出来吧

  布局文件代码