Отображение AlertDialog внутри пользовательского класса ListAdapter - PullRequest
3 голосов
/ 16 июня 2011

Мне трудно разобраться с отображением AlertDialog внутри класса Custom ListView, который расширяет 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();

Выше приведен код, и ошибка LogCat:

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

Я считаю, что проблема в контексте. Я попробовал несколько альтернатив. Но никто не работает. Может ли кто-нибудь помочь мне в этом?

1 Ответ

28 голосов
/ 05 июля 2011

Небольшое изменение в контексте помогло мне. Вот отредактированный фрагмент.

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();
...