android EditText控件如何禁止往里面输入内容?
16lz
2021-01-26
问题?
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:
[java] view plain copy
- 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;
- }
- }
- });
- }
- }
更多相关文章
- monkey的基本定义及基本使用(菜鸟学习中)
- Android中默认不弹出输入法软键盘
- 解决聊天页面解决软键盘遮挡住输入框,和输入法把整个页面顶上去的
- 如何申请个人Google API Key用于Android真机上发布安装
- Android中EditText的设置02
- android 监听EditText 的变化
- 三星在Android上的改进对Developer的影响
- 弹出软键盘时,activity界面整体上移
- Android基础:EditText常用属性