虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > Android如何禁止向EditText控件中输入内容详解

Android如何禁止向EditText控件中输入内容详解
类别:Android编程   作者:码皇   来源:互联网   点击:

EditText是接受用户输入信息的最重要控件。下面这篇文章主要给大家介绍了关于Android如何禁止向EditText控件中输入内容的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

在Android开发中经常会遇到EditText控件,而在App开发过程中、遇到了这样一个问题、那就是Android EditText控件如何禁止往里面输入内容?

最开始找到修改版解决方法、但是当想输入的时候就有问题了、可以参考一下、但不建议这样写

    EditText editText = (EditText) findViewById(R.id.editText1);
    editText.setKeyListener(null);

看到这个问题大家可能有点奇怪了、EditText的功能不就是往上面写入内容吗?再者、如果真要禁止输入文本、在布局文件中添加

    android:focusable="false"

或者在代码中使用、不就Ok了?

    editText.setFocusable(false)

项目需求是这样的、在EditText后面跟一个CheckBox、勾选CheckBox可以输入、否则不可以输入、另外也有这种需求、比如已经被setText()内容、则需要禁止输入、防止它被修改、

如果没有显示内容、则将EditText设置为可输入状态

经过测试验证:setFocusable方法的效果只有第一次使用时有效、也就是说若在布局文件里面设置:

    android:focusable="false"

即使你在代码中设置此控件属性:editText.setFocusable(true);也不能对它进行编辑、即setFocusable方案不可行、经过摸索得出可行方案利用setInputType来实现、代码如下

    editText.setInputType(InputType.TYPE_NULL);
    //来禁止手机软键盘editText.setInputType(InputType.TYPE_CLASS_TEXT);
    //来开启软键盘

应用程序默认为开启状态、特别注意:这种方法也只能禁止软键盘、若手机自带硬键盘、此方案失效

    public class EditTextTest extends Activity {
    /** test EditText forbid input function demo */ EditText editText;
    boolean flag = true;
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    editText = (EditText) findViewById(R.id.editText1);
    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    if (flag==true) {
    System.out.println("开启软键盘");
    editText.setInputType(InputType.TYPE_CLASS_TEXT);
    flag = false;
    }
    else {
    System.out.println("禁止软键盘");
    editText.setInputType(InputType.TYPE_NULL);
    flag = true;
    }
    }
    }
    );
    }
    }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关热词搜索: android edittext控件 android edittext内