从物理键盘切换到软键盘

时间:2012-02-11 23:02:30

标签: android keyboard

从物理键盘切换到软键盘。 大家好, 我正在开发一个可以在Android 3.2平板电脑上运行的应用程序。 我将一个物理键盘连接到平板电脑,然后软件键盘消失。 现在我需要在一些活动中使用软件键盘,但我不知道如何做到这一点。

我尝试了不同的方法:

Android: show soft keyboard automatically when focus is on an EditText

http://dev.bostone.us/2009/11/04/android-show-and-hide-soft-keyboard-programmaticaly/#awp::2009/11/04/android-show-and-hide-soft-keyboard-programmaticaly/

http://plainoldstan.blogspot.com/2010/09/android-set-focus-and-show-soft.html

如果连接了物理键盘,所有这些都不起作用。

有人知道如何实现这一目标?

由于

3 个答案:

答案 0 :(得分:4)

在设置下将是“语言和输入”>>键盘设置>> “输入法选择器”>> “永远显示”

插上键盘后,只需按下屏幕右下角的“键盘ICON”,选择“使用物理键盘”即可关闭

然后软键盘(在屏幕上)将正常显示,直到您拔下键盘。

在我的情况下,我使用条形码扫描仪而不是键盘,所以我需要一些软键盘,但我使用USB集线器并连接条形码扫描仪和数字键盘。

希望这会对你有所帮助。

答案 1 :(得分:2)

是的,当键盘连接到设备时,默认情况下禁用软键盘。要启用它,我们需要通过以下方式关闭硬件键盘:

设置>语言与输入>选择输入法

选项名称可能因设备而异。即使我们将其关闭,我们也可以将扫描仪与软键盘一起使用。

不,目前无法以编程方式完成此任务。我们所能做的最多就是检测连接键盘/扫描仪的时间并通过覆盖onConfigurationChanged类中的Application方法将用户重定向到输入法选择窗口:

@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
                                  .showInputMethodPicker();
    Toast.makeText(this, "Barcode Scanner detected. Please turn OFF Hardware/Physical keyboard to enable softkeyboard to function.", Toast.LENGTH_LONG).show();
  }
}

答案 2 :(得分:0)

实际上,我们可以同时使用物理键盘和软键盘,您要做的就是在连接物理键盘之后,将焦点放在任何edittext上,然后您可以在屏幕的右下角看到一个键盘图标,点击,它会显示所有可用的软i / p选项以及一个名为“显示虚拟键盘-在物理键盘处于活动状态时保持在屏幕上”的开关-只需选中此选项

enter image description here