Android实现EditText控件禁止输入内容的方法(附测试demo)

Nafisa ·
更新时间:2024-09-20
· 969 次阅读

本文实例讲述了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程序设计有所帮助。

您可能感兴趣的文章:Android高仿微信支付密码输入控件Android自定义控件通用验证码输入框的实现Android如何禁止向EditText控件中输入内容详解Android用户输入自动提示控件AutoCompleteTextView使用方法Android 带清除功能的输入框控件实例详解Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)Android带清除功能的输入框控件EditTextWithDelAndroid输入框控件ClearEditText实现清除功能Android WebView控件捕获用户输入的信息Android自定义view实现输入控件



edittext 输入 方法 demo Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章