6

XMLレイアウトを表示するクラスでAlertDialogを拡張しました。AlertDialogの標準ボタンは使用していません。独自の[OK]ボタンと[キャンセル]ボタンがあります。それらのリスナーはを呼び出しますdismiss()。問題は、EditTextのコンテンツを編集していて、[OK]を押した場合(Android 3.1タブレットであり、キーボードによってダイアログの操作が妨げられない場合)、ダイアログは非表示になりますが、キーボードは非表示になり、バックグラウンドのままになります。理由とそれを修正する方法は何でしょうか?

これが私のダイアログのコンストラクターで、アイデアを与えるためのものです。

public NetworkCameraParametersDialog(Context context ) {
        super(context);

        View content = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.dialog, null);
        setView(content);

        Button btnOk = (Button) content.findViewById(R.id.btn_Ok);
        btnOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                                // Some work
                dismiss();              
            }
        });

        Button btnClose = (Button) content.findViewById(R.id.btn_Close);
        btnClose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
    }
4

1 に答える 1

4

ソフトキーボードを強制的に非表示にすることができます。

    try {
        InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);
    } catch (Exception e) {}
于 2012-09-20T15:11:04.360 に答える