我想显示一个 EditText
,主要通过选择它的一部分并按下按钮插入新值来编辑它。 (这些值是我不希望用户必须键入的长十六进制字符串。)因此,我想抑制软键盘的显示,除非用户故意调用它。
This question描述了几乎完全相同的需求,但是 accepted answer不适用于 Android 5.1。当输入模式更改为 InputType.TYPE_NULL
时,EditText
将禁用所有 编辑功能,而不仅仅是软键盘。没有光标,没有点击拖动选择等。
按照 this answer 中的建议覆盖 onCheckIsTextEditor()
行为方式相同。
有什么方法可以在 Android 5 上完成此操作吗?
最佳答案
这是在 API 21 中添加的:
EditText editText = (EditText) findViewById(R.id.edittext);
editText.setShowSoftInputOnFocus(false);
根据 grepcode ,这个方法从4.1.1版本开始就存在但是被隐藏了。因此,您可以将调用它的方法注释为 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
,并使用 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN 保护调用本身)
。
关于android - 编辑文本 : suppress soft keyboard but allow selection and cursor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30631573/