3

我正在尝试显示软输入键盘以查看触摸事件。这条线有效:

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

但是这条线不起作用:

inputManager.showSoftInput(this,0);

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

4

5 回答 5

5

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

它不会keyboard在 AVD 上打开,但会在没有Hard key board.

要对其进行测试,AVD您需要禁用键盘。

禁用键盘使用

Click on AVD manager > open you targeted AVD > Edit > Hardware > New > Keyboard Support > OK > Make it "NO"
于 2012-07-13T14:05:24.887 回答
3

尝试这个:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
于 2012-07-13T05:32:51.643 回答
2

showSoftInput()View除非你有焦点,否则不会工作。此外,除非您首先调用和/或设置为 true ,否则调用requestFocus()不会让您集中注意力。ViewsetFocusableInTouchMode()setFocusable()

于 2014-06-09T18:49:09.000 回答
2

在 onclick 事件中试试这个。

InputMethodManager imm = 
            (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 
                InputMethodManager.HIDE_IMPLICIT_ONLY);
于 2012-07-13T06:16:03.707 回答
0

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

    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);
                    }
                }
            });
于 2018-11-16T10:48:13.960 回答