在自定义 ListAdapter 类中显示 AlertDialog

发布于 11-15 10:52 字数 899 浏览 2 评论 0原文

我很难处理在扩展 BaseAdapter 的自定义 ListView 类中显示 AlertDialog 的问题。

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

我相信问题是由于上下文造成的。我尝试了一些替代方案。但没有一个有效。任何人都可以帮助我吗?

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?.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最美不过初阳2024-11-22 10:52:50

对上下文的轻微修改对我来说是个窍门。这是编辑后的片段。

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

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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文