显示软输入键盘

时间:2012-07-13 05:27:14

标签: android android-view android-input-method

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

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

但这条线不起作用:

inputManager.showSoftInput(this,0);

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

5 个答案:

答案 0 :(得分:5)

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

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

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

禁用键盘使用

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

答案 1 :(得分:3)

试试这个:

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

答案 2 :(得分:2)

在onclick事件中尝试此操作。

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

答案 3 :(得分:2)

除非showSoftInput()有焦点,否则

View无法工作。此外,除非您先致电requestFocus()和/或View为真,否则致电setFocusableInTouchMode()不会给您setFocusable()焦点。

答案 4 :(得分: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);
                    }
                }
            });