【问题标题】:How to completely hide the virtual keyboard in all EditTexts?如何在所有 EditTexts 中完全隐藏虚拟键盘?
【发布时间】:2019-07-07 05:41:38
【问题描述】:

我正在开发一个安卓应用程序,大多数用户使用连接到安卓设备的硬件键盘来轻松输入字符。

即使有硬件键盘,当用户点击EditText时,虚拟键盘也会弹出,这是不必要的。

我需要给用户一个设置来完全禁用虚拟键盘,这样他们就可以单独使用硬件键盘了。

This 问题有几个关于如何为单个EditText 禁用软键盘的答案,但是有条件地禁用单个EditTexts 的软输入对我来说非常困难,因为有大量包含@987654327 的活动@s.

一种方法是安装Null Keyboard 应用程序并从Android 设置中选择它作为虚拟键盘,如here 所述,但我不希望我的应用程序的用户依赖第三方应用程序。

有没有办法在不为单个屏幕禁用的情况下全局禁用虚拟键盘?

【问题讨论】:

  • @RonTLV 该问题的答案集中在如何为单个 EditText 元素禁用软键盘。我正在寻找一种方法,可以有条件地从单个位置禁用所有EditText 元素中的软输入,而无需更改我在应用程序中使用EditText 的每个位置的代码。

标签: android


【解决方案1】:

如果您想为所有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,看看它,如果它解决了你的问题。

【讨论】:

  • 它解决了您的问题吗?如果您有任何进一步的疑问,请告诉我。
猜你喜欢
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 2020-02-23
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多