Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Displaying AlertDialog inside a Custom ListAdapter Class

I am having a hard time dealing with displaying a AlertDialog inside a Custom ListView class which extends a BaseAdapter.

AlertDialog.Builder alertbox = new AlertDialog.Builder(getParent().getApplicationContext());
        alertbox.setMessage("No Internet Connection");
        alertbox.setTitle("Warning");
        alertbox.setIcon(R.drawable.trn_03);

        alertbox.setNeutralButton("OK",
                new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface arg0,
                            int arg1) {

                    }
                });
  alertbox.show();

The above is the code I am using, and the LogCat error is,

06-16 11:33:25.686: ERROR/AndroidRuntime(690): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

I believe that the problem is because of the context. I tried a few alternative. But none works. Can anyone help me in this?.

like image 219
Andro Selva Avatar asked Jun 16 '11 06:06

Andro Selva


1 Answers

A slight modification with the context did teh trick for me. Here is the edited snippet.

AlertDialog.Builder alertbox = new AlertDialog.Builder(v.getRootView().getContext());
    alertbox.setMessage("No Internet Connection");
    alertbox.setTitle("Warning");
    alertbox.setIcon(R.drawable.trn_03);

    alertbox.setNeutralButton("OK",
            new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface arg0,
                        int arg1) {

                }
            });
  alertbox.show();
like image 112
Andro Selva Avatar answered Oct 26 '22 14:10

Andro Selva