Androidで同一Dialogを2回表示すると、「java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.」というエラーが発生する。
dialogの初回起動時には、create(初期化)→show(表示)という順番で処理し、次回からはshowのみを使用する。
MyDialog.java
private AlertDialog dialog;
public void showDialog() {
if(dialog == null) {
dialog = new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle("Title")
.setPositiveButton(R.string.tutorial1_positive, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {}
})
.create();
}
dialog.show();
}