3

タッチイベントを表示するためのソフト入力キーボードを表示しようとしています。この行は機能します:

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

しかし、この行は機能しません:

inputManager.showSoftInput(this,0);

なんでそうなの?ソフト入力をビューに接続したい場合はどうなりますか?ありがとう。

4

5 に答える 5

5

エミュレータでテストしていると思います。実際のデバイスではありませんか?

AVDでは開きkeyboardませんが、がない実際のデバイスでは開きます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

onclickイベントでこれを試してください。

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

showSoftInput()あなたViewが焦点を合わせない限り、機能しません。さらに、最初に電話をかけたり、真に電話をかけたりしない限り、電話をかけることはあなたの焦点requestFocus()を与えません。 ViewsetFocusableInTouchMode()setFocusable()

于 2014-06-09T18:49:09.000 に答える
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 に答える