EditTextウィジェットを含むカスタムビューでAlertDialogを使用しています。AlertDialogが表示される前に、EditTextウィジェットの内容を変更したい。これは通常、onPrepareDialog()をオーバーライドし、そこにテキストを設定することによって行われることを私は知っています。ただし、Activity.showDialog()の代わりにAlertDialog.show()を使用しているため、私が見る限り、これは特定のケースでは機能しません。
では、AlertDialog.show()を使用して表示されるダイアログでこれをどのように行う必要がありますか?1つの解決策は、ダイアログが前面に表示された後にテキストを設定することです。
AlertDialog alertDialog = builder.create();
alertDialog.show();
EditText editText = (EditText) alertDialog.findViewById(R.id.text);
editText.setText("Foo bar");
ただし、ダイアログが最初に表示されてからテキストが設定されるため、これは良い解決策ではないと思います。ダイアログが実際に表示される前にテキストを設定したいと思います。
これを達成する方法はありますか?findViewById()がalertDialog.show()の前に呼び出されるとnullを返すため、alertDialog.show()の前にそれを行うことはできません。
助けてくれてありがとう!