我正在开发一个android应用,其中大多数用户使用连接到android设备的硬件键盘来轻松输入字符。
即使存在硬件键盘,当用户单击EditText
时,也会弹出虚拟键盘,这是不必要的。
我需要给用户一个设置以完全禁用虚拟键盘,以便他们可以单独使用硬件键盘。
This问题有几个关于如何为单个EditText
禁用软键盘的答案,但是有条件地禁用单个EditText
的软输入对我来说是相当困难的包含EditText
的活动。
一种方法是安装Null Keyboard
应用,并按照here的说明从android设置中将其选择为虚拟键盘,但我不希望我的应用的用户依赖第三方应用。
有没有一种方法可以全局禁用虚拟键盘,而不必为单个屏幕禁用虚拟键盘?
答案 0 :(得分:0)
如果要为所有EditTexts
禁用键盘,则可以创建自定义EditText
并在其中禁用键盘功能。并且在您的项目中使用您自己的自定义NoKeyboardEditText
而不是使用本机EditText
。喜欢
public class NoKeyboardEditText extends EditText {
public NoKeyboardEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void init() {
setInputType(InputType.TYPE_NULL);
}
}
现在,在XML中,您可以通过这种方式使用自定义NoKeyboardEditText
<com.your_package_name.NoKeyboardEditText
... // add all other attributes here
/>
或
我找到了另一种解决方案here,如果可以解决您的问题,请看一下。