显示软输入键盘



我正在尝试显示触摸事件视图的软输入键盘。这条线路工作:

inputManager.toggleSoftInputFromWindow(getWindowToken(),0,0);

但这条线不起作用:

inputManager.showSoftInput(this,0);

为什么会这样?如果我想将软输入连接到视图,该怎么办?谢谢

我认为您正在模拟器上进行测试。不是在真正的设备上?

它不会在AVD上打开keyboard,但会在没有Hard key board的真实设备上打开。

要在AVD上测试它,您需要禁用键盘。

要禁用键盘,请使用

Click on AVD manager > open you targeted AVD > Edit > Hardware > New > Keyboard Support > OK > Make it "NO"

试试这个:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

在onclick事件中尝试此操作。

InputMethodManager imm = 
            (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 
                InputMethodManager.HIDE_IMPLICIT_ONLY);

showSoftInput()不会工作,除非您的View有焦点。此外,调用requestFocus()不会使View聚焦,除非您首先将setFocusableInTouchMode()和/或setFocusable()调用为true。

您需要首先请求焦点并显示如下软输入:

    mEditTextStudy.requestFocus();
    mEditTextStudy.post(
            new Runnable() {
                @Override
                public void run() {
                    InputMethodManager imm =
                            (InputMethodManager)
                                    getActivity()
                                            .getSystemService(Context.INPUT_METHOD_SERVICE);
                    if (imm != null) {
                        imm.showSoftInput(mEditTextStudy, SHOW_FORCED);
                    }
                }
            });

相关内容

  • 没有找到相关文章

最新更新