Android实现EditText控件禁止输入内容的方法(附测试demo)
程序员文章站
2023-12-17 13:50:58
本文实例讲述了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程序设计有所帮助。