Help us understand the problem. What is going on with this article?

Androidで同一Dialogを2回表示する

More than 5 years have passed since last update.

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();
}
ayakix
今日もどっこい生きています。
http://ayakix.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away