本来这个也不算个大问题,但我开发中确实遇到了,特开此贴,希望能帮到一些android新手。

可能有人会说,设置EditText不可编辑那还不简单,直接设置

Xml代码  
  1. android:editable="false"  

 就可以了,如果你一直是这么做的,那么你就不用看下去了,在android2.2中直接设置  android:editable="false"是不起作用的,(我在模拟器和真机环境中测试都不起作用) 在android2.2中 editable是depreceated的,大家可以看看api文档http://developer.android.com/reference/android/R.attr.html#editable 。

 

     那么我们是不是就不可以设置EditText的编辑状态呢,当然不是,我们可以设置

 

Xml代码  
  1. android:focusable="false"  

   这是什么意思呢,很简单,不让它获得输入焦点(不要告诉我你不知道什么是焦点),既然得不到焦点,当让就无法输入了,我在http://stackoverflow.com/questions/4824676/making-not-editable-edittext-component 上也到的这样的解决方式。

   那么为什么要这么做呢,为什么不要   android:editable了呢,这是一个用户体验的问题。android是一个移动平台,大多数是没有键盘的,都是屏幕软键盘,如果你设置EditText为不可编辑,那么就不应该打开软键盘,而不是打开软键盘了又无法输入。

 

   似乎到了这里就没有说的了,请你不要着急,这样设置后有一个问题,无法选中EditText的内容,因为它无法获得焦点 ,这个问题我也不知道怎么解决,希望大大们能给解决下。

 

    如何在java代码中控制EditText不可编辑呢,因为EditText没有setEditable这样的方法,这个问题坛子里已经有很多高手解决了,使用 InputFilter

具体如下:

 

Java代码  
  1. 你的EditText.setFilters(new InputFilter[] {   
  2.             new InputFilter() {   
  3.                 public CharSequence filter(CharSequence source, int start,   
  4.                         int end, Spanned dest, int dstart, int dend) {   
  5.                     return source.length() < 1 ? dest.subSequence(dstart, dend) : "";   
  6.                 }   
  7.             }   
  8.         });  
你的EditText.setFilters(new InputFilter[] {new InputFilter() {public CharSequence filter(CharSequence source, int start,int end, Spanned dest, int dstart, int dend) {return source.length() < 1 ? dest.subSequence(dstart, dend) : "";}}});

  (申明下,这个我是在坛子中看到的,本人测试有效) 这样做就可以在java代码中动态设置EditText的编辑状态了,但这个无法解决用户体验的问题,软键盘依然会打开,但无法输入,但可以选择内容。

更多相关文章

  1. Android:EditText 多行显示及所有属性(不自动弹出软键盘)
  2. AndroidManifest.xml - 【 manifest -> application】
  3. Android(安卓)全屏
  4. 默认不弹出输入面板
  5. Android画图Path的使用
  6. android按键定义
  7. android 动态设置background颜色
  8. android 设置全屏,导航栏透明
  9. 35、键盘布局的tableLayout备份

随机推荐

  1. Android(安卓)选择图片裁剪,上传
  2. Android(安卓)显示富文本
  3. Android使用NIO开发客户端
  4. android Ongoing
  5. Android(安卓)无障碍辅助功能Accessibili
  6. android jpush 极光推送
  7. Android: Example wpa_supplicant config
  8. Android(安卓)systrace
  9. Android(安卓)- under the hood
  10. Android(安卓)实现发送短信demo