2

によって作成されたEditTextのカスタム タイトル ビューが必要です。この EditText の設定と表示は、呼び出される EditorActionListener コールバックを含むテキストの貼り付け (長いクリックによる) と同様にパンアウトします。AlertDialogAlertDialog.Builder

ただし、ソフト入力は表示されないため、テキストを追加するのは非常に不便です。私はすでに を呼び出してみInputMethodManager.showSoftInput()ましたが、ダイアログの作成/表示の前後でも、OnClickListener内でOnFocusChangeListenerも、エクストラでも、何も起こりませんRunnable

私がつまずくのは、他の多くの AlertDialogs がEditText必要に応じて機能していることです。カスタム タイトル ビューとコンテンツ ビューの間に概念上の違いはありますか?

4

1 に答える 1

4

解決:

AlertDialogのAlertControllerは、ソフト入力をブロックするフラグを設定します。したがって、これを行います。

AlertDialog.Builder builder = .... // initialize, set up
AlertDialog d = builder.show();
d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

これで、ソフト入力が表示され、ダイアログのサイズが変更され、すべてが機能します。(ちなみにGrepCodeに感謝します...)。

于 2012-11-16T07:09:15.373 に答える