1

AlertDialog ポップアップに EditBox があります。AlertDialog がポップアップする瞬間に仮想キーボードをポップアップするようにしました (そのため、キーボードを表示するためにその白いフィールドをクリックする必要はありません)。

InputMethodManager imm = (InputMethodManager)
            Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);

            if (imm != null){
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
            }

しかし、入力が終わったら、キーボードの [完了] をクリックし、AlertDialog で [OK] をクリックする必要があります。問題は、ユーザーが入力を終えたらすぐに [OK] ボタンに移動し、[OK] をクリックした後も仮想キーボードが画面に表示されたままになることです。デバイスの [戻る] ボタンをクリックする必要があります。OKボタンが押されたらキーボードをクリアする方法は?

役立つ場合は、私の AlertDialog コード全体を次に示します。

case R.id.bKonacno:

                        }

                LayoutInflater layoutInflaterK = LayoutInflater.from(context);  
                View promptViewK = layoutInflaterK.inflate(R.layout.popup_answer, null);
                AlertDialog.Builder alertDialogBuilderK = new AlertDialog.Builder(context);
                // set prompts.xml to be the layout file of the alertdialog builder
                alertDialogBuilderK.setView(promptViewK);
                final EditText inputK = (EditText)promptViewK.findViewById(R.id.userInput);

                InputMethodManager imm = (InputMethodManager)
                Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);

                if (imm != null){
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
                }

                alertDialogBuilderK
                                        .setCancelable(false)
                                        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                                    public void onClick(DialogInterface dialog, int id) {
                                                        // get user input and set it to result

                                                        //some code of mine
                                                    }
                                                })
                                        .setNegativeButton("Cancel",
                                                new DialogInterface.OnClickListener() {
                                                    public void onClick(DialogInterface dialog, int id) {
                                                        dialog.cancel();
                                                    }
                                               });
                                // create an alert dialog

                                AlertDialog alertK = alertDialogBuilderK.create();
                                alertK.show();

                                break;

ここに画像の説明を入力

4

2 に答える 2

1

Ok/Cancelボタンを押すと、次のことができます。

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

詳しくは、Android ソフト キーボードを閉じる/隠すをご覧ください 。それが役に立てば幸い。

于 2013-06-13T19:09:06.360 に答える
0

ボタンに次を追加してみてください。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
于 2013-06-13T19:09:35.780 に答える