开发中经常遇到一个输入框可以灵活改变其是否可以进行输入。如果不可编辑输入,那么xml文件中设定属性:

android:background="@null" android:enabled="false" android:editable="false"就可以,显示效果和TextView一样,关键是如果想在java程序中恢复编辑却不是那么利索,主要是因为针对editable属性没有直接设置的。通过查阅资料找到一个可以彻底解决的办法。

private void setEditText(EditText editText, boolean edit) {  
        if (edit) {  
            editText.setEnabled(true);  
            editText.setInputType(InputType.TYPE_CLASS_TEXT);  
            editText.setBackgroundDrawable(new EditText(getBaseContext())  
                    .getBackground());  
        } else {  
            editText.setEnabled(false);  
            editText.setInputType(InputType.TYPE_NULL);  
            editText.setBackgroundDrawable(null);  
        }  
    }  
其中editText.setBackgroundDrawable(new EditText(getBaseContext())
.getBackground());中的new EditText(getBaseContext())
.getBackground()应该是android提供的一个常量,但是找了半天没有找到这个常量在哪里,所以用此变通方法解决。有高人知道还望指点。

更多相关文章

  1. android学习——android text 属性大全
  2. Android EditView属性详细介绍
  3. Android studio相对布局的常用属性
  4. android:layout_weight属性详解
  5. android中Selector中的相关属性及配置写法
  6. android:gravity 和 android:layout_Gravity属性——android开发
  7. Android之TextView属性列表
  8. Android中TextView属性

随机推荐

  1. 7 个开放式 CSS 面试题及回答策略 [每日
  2. 在北京看场雪为什么这么难?
  3. 用python对2019年二手房价格进行数据分析
  4. 基于 Babel 的 npm 包的最小化设置 [每日
  5. 一文学懂 TypeScript 的类型 [每日前端夜
  6. 通过 Web 控制蓝牙设备:WebBluetooth入门
  7. 7个 Javascript 面试题及回答策略 [每日
  8. JavaScript 高阶函数快速入门 [每日前端
  9. 分享十张表的数据!大家一起玩!
  10. 2019年 Vue.js 报告中的亮点 [每日前端夜