时间:2021-05-19
本文实例讲述了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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言在Android开发中经常会遇到EditText控件,而在App开发过程中、遇到了这样一个问题、那就是AndroidEditText控件如何禁止往里面输入内
AutoCompleteTextView是实现动态匹配输入内容的一种输入框(EditText),如输入“and”时,会提示“Android”效果图:实现代码:p
Android的EditText字数检测和限制解决办法控件EditText在Android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们
当我们在一个EditText输入电话或者网址还是Email的时候,让Android自动判断,当我们输入的是电话,我们点击输入内容将调用打电话程序,当我们输入是网
Android输入框实时模糊搜索很多开发场景会用到搜索框实时模糊搜索来帮助用户输入内容,如图思路是在EditText字符变动的时候弹出ListPopupwind