AlertDialogでネストしたい時
アプリでダイアログ表示した後、ユーザーが特定のボタン(NeutralButton)を選択して押した時に更に新しいダイアログを表示するようにした。
ここではまったのは新しいダイアログの方のnew AlertDialog.Builder(this)の引数。Contextを指定してほしいと言われたので
new AlertDialog.Builder(this)
とか
new AlertDialog.Builder(getApplicationContext())
とか色々試したけどダメ。結果、どこかのstackOverFlowで見たMainActivity.thisを指定してあげたら動いたよ。
thisってインスタンスじゃないの?クラス名.で呼び出せるのってstaticなクラスだけじゃないんだっけか?
private void showAlert(){ new AlertDialog.Builder(this) .setTitle("title") .setMessage("message") setNeutralButton("NeutralButton"), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { new AlertDialog.Builder(MainActivity.this) ︙ } }) .create().show(); }