2

我的应用程序中有一个弹出窗口,旨在充当一种设置窗口。在这里面会有几个小视图,比如复选框等等,但我似乎在让一个正常工作时遇到问题。

目前我在视图中只有一个按钮,它正在膨胀,我正在尝试使用它来关闭弹出窗口,但是当我尝试设置 onClickListener 时出现 NullPointerException。事实上,如果我完全引用该按钮,即使在“button.isShown()”之类的东西中,它也会给我一个异常,就好像该按钮不存在一样。

我已经尝试了我能想到的一切,但没有什么能完全解决这个问题。我假设有一种方法可以在 PopupWindow 中使用工作按钮,或者我是否需要修改某种形式的对话框才能获得我想要的效果?

谢谢您的帮助。

4

1 回答 1

2

确保当您调用 findViewById(R.id.yourButton) 时您正在使用 Dialog.findViewById(id) 否则它将在您的主布局上查找按钮,并且无法正确找到它,这将在您尝试时导致 NullPointers使用参考。

编辑:这里是圆顶代码,使这一点更清楚

    AlertDialog.Builder builder = new AlertDialog.Builder(this)
    .setView(layout); 
    alertDialog = builder.create();
    alertDialog.show();
    button = (Button) alertDialog.findViewById(R.id.yourButton);
于 2011-01-22T22:37:58.010 回答