2011-01-22 82 views
2

我在我的应用程序中有一个popupwindow是为了充当一种设置窗口。在这里面会有一些像复选框和什么不一样的小视图,但我似乎遇到了一个难题让一个人正常工作。安卓按钮里面PopupWindow

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

我试过所有我能想到的东西,但没有什么能完全解决这个问题。我假设有一种方法可以在PopupWindow中使用工作按钮,还是需要修改某种形式的对话框以获得我之后的效果?

谢谢你的帮助。

回答

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); 
+0

我希望让事情变得简单,因为我可以,但我结束了在一个新的类扩展对话框,获得完全控制,我想。你的帖子对我来说很有帮助,非常感谢你。 – Chance 2011-01-23 07:14:43