android - 编辑文本 : suppress soft keyboard but allow selection and cursor?

标签 android android-edittext android-softkeyboard

我想显示一个 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/

相关文章:

Android 2.3 模拟器在调用 requestLocationUpdates 后崩溃

Android - IllegalStateException : map has zero size

java - Android:如何获取调用该类的 Activity

java - 我如何解决 Google Play 游戏服务 : SecurityException: Permission Denial: opening provider?

android - 我如何在软键盘顶部的建议中添加单词

android - Android 中的 RTL EditText 断指针问题

android - 键盘应始终显示,并且在我按返回键之前不应最小化

android - 为什么我在cordova上打开软键盘时有白色区域?

java - 向跨度字符串添加额外的文本可以消除我的粗体文本。

android - OutlinedTextField jetpack 在键盘后面组成