0

私のアプリケーションには、EditText を含むダイアログがあります。編集ボックスのキーボードを自動的に取得したいです。つまり、ダイアログが表示されると、キーボードが表示されます。EditTextに触れずにキーボードを表示する方法はありますか?

ダイアログコードを追加しました

AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(APP_NAME);
    builder.setMessage(message);
    // Use an EditText view to get user input.
    final EditText inputDevice = new EditText(this);
    final EditText inputTester = new EditText(this);

    if (id == DLG_ID_TESTER) {
        inputTester.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
        // inputTester.setThreshold(1);
        inputTester.setSelectAllOnFocus(true);
        inputTester.requestFocus();
        inputTester.setId(TXT_ID);
        builder.setView(inputTester);
    } else {
        inputDevice.setId(TXT_ID);
        inputDevice.setSelectAllOnFocus(true);
        builder.setView(inputDevice);
    }
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int whichButton) {

            if (id == DLG_ID_TESTER) {
                String val = inputTester.getText().toString();
                testerName = val;
                txtTesterName.setText(testerName);
            } else if (id == DLG_ID_DEVICE) {
                String value = inputDevice.getText().toString();
                deviceId = value;
                txtDeviceId.setText(deviceId);

            }
            return;
        }

    });

    builder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    return;

                }
            });

    return builder.create();
}
4

2 に答える 2

1

Edittextに触れずにダイログを開くには、このリンクを試してください

**YOUR_VIEW**.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager keyboard = (InputMethodManager)
                getSystemService(Context.INPUT_METHOD_SERVICE);
                keyboard.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
            }
        },200);
于 2012-11-21T12:09:29.083 に答える
0

OnFocusChange() メソッドをオーバーライドして、ダイアログ全体がいつフォーカスされるかを確認してから、「常に表示される」入力モードで getWindow().setSoftInputMode() を呼び出すことができます。

于 2012-11-21T12:24:52.910 に答える