这篇文章主要介绍了Android怎么禁止向EditText控件中输入内容,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<强>前言强>
在Android开发中经常会遇到EditText控件,而在应用程序开发过程中,遇到了这样一个问题,那就是Android EditText控件如何禁止往里面输入内容?
最开始找到修改版解决方法,但是当想输入的时候就有问题了,可以参考一下,但不建议这样写
EditText EditText =, (EditText), findViewById (R.id.editText1); editText.setKeyListener (null);
看到这个问题大家可能有点奇怪了,EditText的功能不就是往上面写入内容吗?再者,如果真要禁止输入文本,在布局文件中添加
android: focusable=癴alse"
或者在代码中使用,不就好了?
editText.setFocusable (false)
项目需求是这样的,在EditText后面跟一个复选框,勾可选复选框以输入,否则不可以输入,另外也有这种需求,比如已经被setText()内容,则需要禁止输入,防止它被修改,
如果没有显示内容,则将EditText设置为可输入状态
<强>经过测试验证:强> setFocusable方法的效果只有第一次使用时有效,也就是说若在布局文件里面设置:
android: focusable=癴alse"
即使你在代码中设置此控件属性:<代码> editText.setFocusable(真正);> 代码也不能对它进行编辑,即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 =,真的,, , ,public void  onCreate (Bundle savedInstanceState), {大敌; super.onCreate才能(savedInstanceState);, ,,setContentView (R.layout.main);, editText 才能=,(EditText), findViewById (R.id.editText1);, Button 才能;btn =,(按钮),findViewById (R.id.button1);, OnClickListener btn.setOnClickListener才能(new (), ,{大敌; ,,public void  onClick (View v), ,,,{ ,,,if (标志==true), ,,,{, ,,,,System.out.println(“开启软键盘“),, ,,,,,editText.setInputType (InputType.TYPE_CLASS_TEXT);, ,,,,flag =,假的,, ,,,,, ,,,}else ,,,{, ,,,,System.out.println(“禁止软键盘“),, ,,,,,editText.setInputType (InputType.TYPE_NULL);, ,,,,flag =,真的,, ,,,}, ,,}, ,,}); }大敌; }
感谢你能够认真阅读完这篇文章,希望小编分享的“Android怎么禁止向EditText控件中输入内容”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!