Question: So I have a button that displays an alert dialog when its clicked. 
I create the view for the alert dialog in the onCreate method of my activity.
The code for that is right here:

```
    LayoutInflater factory = LayoutInflater.from(this);
    view = factory.inflate(R.layout.grade_result, null);

```

When I push the button for the first time, the dialog displays the way I want it, but when I push it a second time it throws this exception.

11-28 00:35:58.066: E/AndroidRuntime(30348): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

My code for the method that displays the AlertDialog when the button is pushed is right here:

```
public void details(View v){
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setView(view);
    alert.setMessage("Details About Your Grades")
    .setCancelable(false)
    .setPositiveButton("Continue", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id){
            dialog.cancel();

        }
    });
    alert.show();

```

Any help would be appreciated!
Thank you!

Answer: 
I had similar issue with alert dialog. First time I inflated a view and second time I wanted to display a message.
If you display the alert dialog once then you inflate the view and the dialog is cached. If you display it second time you get the error IllegalStateException:"call removeView() on child's parent first"

I solved this issue by removing the view that I inflated on first click and displayed the message on second click.
-remove the view or message every time before you inflate or create a message.

```
alertDialogBuilder.setView(null).setMessage(null);
alertDialogBuilder.setView(yourView).setMessage(yourMessage);

```

I modified Your code and it work's fine with me.

```
LayoutInflater factory = LayoutInflater.from(this);
mView = factory.inflate(R.layout.grade_result, null);

public void details(View v){
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setView(null).setMessage(null);
    alert.setView(mView);
    alert.setMessage("Details About Your Grades")
    .setCancelable(false)
    .setPositiveButton("Continue", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id){
            dialog.cancel();

        }
    });
    alert.show(); }

```
you can set View to null before setting the view in the dialog.  

just like this: 

```
alert.setView(null);
alert.setView(view);

```

It will always set view to null before setting it again.