前言
在AndroID开发中经常会遇到EditText控件,而在App开发过程中、遇到了这样一个问题、那就是AndroID EditText控件如何禁止往里面输入内容?
最开始找到修改版解决方法、但是当想输入的时候就有问题了、可以参考一下、但不建议这样写
EditText editText = (EditText) findVIEwByID(R.ID.editText1);editText.setKeyListener(null);@H_419_13@看到这个问题大家可能有点奇怪了、EditText的功能不就是往上面写入内容吗?再者、如果真要禁止输入文本、在布局文件中添加
androID:focusable="false"@H_419_13@或者在代码中使用、不就Ok了?
editText.setFocusable(false)@H_419_13@项目需求是这样的、在EditText后面跟一个CheckBox、勾选CheckBox可以输入、否则不可以输入、另外也有这种需求、比如已经被setText()内容、则需要禁止输入、防止它被修改、
如果没有显示内容、则将EditText设置为可输入状态
经过测试验证:setFocusable方法的效果只有第一次使用时有效、也就是说若在布局文件里面设置:
androID:focusable="false"@H_419_13@即使你在代码中设置此控件属性:
editText.setFocusable(true);
也不能对它进行编辑、即setFocusable方案不可行、经过摸索得出可行方案利用setinputType来实现、代码如下editText.setinputType(inputType.TYPE_NulL);//来禁止手机软键盘editText.setinputType(inputType.TYPE_CLASS_TEXT);//来开启软键盘@H_419_13@应用程序默认为开启状态、特别注意:这种方法也只能禁止软键盘、若手机自带硬键盘、此方案失效
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; } } }); } } @H_419_13@总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。
总结以上是内存溢出为你收集整理的Android如何禁止向EditText控件中输入内容详解全部内容,希望文章能够帮你解决Android如何禁止向EditText控件中输入内容详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)