EditText控件无法代码设置ReadOnly只读

作者: Android开发网原创 时间: 2010-10-25

有些网友可能发现Android的EditText控件有个设计bug,就是无法使用Java代码方式设置ReadOnly只读方式,但是Android123提示大家通过xml代码可以设置 android:editable="false" ,相关的setEnabled方法这里不适用,同时android.text.Editable.Factory也无法设置可编辑,该类相关方法只有static Editable.Factory getInstance() 和 Editable newEditable(CharSequence source) 两个。

目前还没有很好的解决方法,EditText控件这种设计缺陷确实比较麻烦,当然Android开发网给大家一个曲线的方法,通过父类TextView的addTextChangedListener(TextWatcher watcher) 方法,设置一个listener监控文字修改后立即恢复原来的内容即可。



android的EditText控件实现只读只需设置三个方法:
editText.setCursorVisible(false);//隐藏光标
editText.setFocusable(false);//失去焦点
editText.setFocusableInTouchMode(false);//虚拟键盘隐藏
如果需记录状态,可以继承EditText类,添加一个属性enable来控制



更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android的四种存储方式: sharedpreference,file,SQlite,contentpr
  5. Android自定义标题栏
  6. 两分钟彻底让你明白Android(安卓)Activity生命周期(图文)!
  7. Android源码阅读分析:从Activity开始(一)——启动流程
  8. TextView属性大全
  9. [读书笔记] Android(安卓)Toast 显示时间叠加问题的探讨

随机推荐

  1. MYSQL实现添加购物车时防止重复添加示例
  2. Mysql常用运算符与函数汇总
  3. MySQL数据库同时查询更新同一张表的方法
  4. MySQL8.0.3 RC版即将发布 先来看看有哪些
  5. MySQL慢查询日志的配置与使用教程
  6. Mysql数据库增量备份的思路和方法
  7. windows环境下mysql的解压安装及备份和还
  8. MySQL联合索引功能与用法实例分析
  9. Spring jdbc中数据库操作对象化模型的实
  10. MySQL主从数据库搭建方法详解