当前位置: 移动技术网 > IT编程>移动开发>Android > Android如何禁止向EditText控件中输入内容详解

Android如何禁止向EditText控件中输入内容详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

支付鸨,科学睡眠下载,抢码器

前言

在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; 
    } 
   } 
  }); 
 } 
} 

总结

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网