0

ダイアログが開いたときにキーボードを表示するためにを使用していDialogFragmentます。しかし、何らかの理由で機能していません。理由を知っている人はいますか?onCreateDialogInputMethodManager

        @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder b = new Builder(getActivity());

        b.setMessage("Enter a 5 digit zipcode");
        final EditText et = new EditText(getActivity());
        et.setInputType(InputType.TYPE_CLASS_NUMBER);
        et.requestFocus();
        et.setHint("Zipcode");
        InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(INPUT_METHOD_SERVICE);
        imm.showSoftInput(et, InputMethodManager.SHOW_FORCED);
        b.setView(et);          
        return b.create();
    }
4

2 に答える 2

0

Androidデバイスでコードを実行してみましたか?Androidエミュレーターを使用している場合は、エミュレーターのハードウェアプロパティ内のキーボードサポートがオフになっている可能性があります。

有効にするには、[AVDマネージャー]->[AVDの編集]->[ハードウェア]->[キーボードサポートの追加]/ [キーボードサポートの編集]に移動し、その値を有効にします

于 2012-07-13T19:55:34.230 に答える
0

EditText へのフォーカスをリクエストする必要があるかもしれません。また、ダイアログで利用できる場合、 getWindow() の方が信頼性が高いことがわかりました。

       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    et.requestFocus();
    getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);

私の答えを更新してください。ダイアログはおそらく既に実行されています。したがって、現在のウィンドウでリクエストが行われ、ダイアログが作成されます。ダイアログにはおそらく独自のウィンドウがあるため、表示されませんか?

于 2012-07-13T20:35:19.790 に答える