欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现EditText控件禁止输入内容的方法(附测试demo)

程序员文章站 2023-12-13 18:49:40
本文实例讲述了android实现edittext控件禁止输入内容的方法。分享给大家供大家参考,具体如下: 问题: android如何实现edittext控件禁止往里面输...

本文实例讲述了android实现edittext控件禁止输入内容的方法。分享给大家供大家参考,具体如下:

问题:

android如何实现edittext控件禁止往里面输入内容?

修改版解决方法:

edittext edittext = (edittext) findviewbyid(r.id.edittext1);
edittext.setkeylistener(null);

看到这个问题大家可能有点奇怪了,edittext的功能不就是往上面写入内容吗?

再者,如果真要禁止输入文本,在布局文件中添加 android:focusable="false",

或者在代码中使用edittext.setfocusable(false),不就ok了?

项目需求是这样的,如果edittext上面已经被settext()内容,则需要禁止输入,防止它被修改。

如果没有显示内容,则将edittext设置为可输入状态。

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

android:focusable="false",即使你在代码中设置此控件属性:edittext.setfocusable(true);也不能对它进行编辑。

即setfocusable方案不可行。经过摸索得出可行方案。

利用 edittext.setinputtype(inputtype.type_null);来禁止手机软键盘。

edittext.setinputtype(inputtype.type_class_text);来开启软键盘。

应用程序默认为开启状态。

特别注意:这种方法也只能禁止软键盘,若手机自带硬键盘,此方案失效。

附测试demo:

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程序设计有所帮助。

上一篇:

下一篇: