问题描述
设置Dialogs背景可绘制时,我得到一个警告, 方法调用“ setBackgroundDrawable”可能会产生“ java.lang.NullPointerException” 。 我将如何防止此类异常?
class UIManager {
private Context context;
private MapActivity activity;
private Dialog dialog;
UIManager(MapActivity activity, Context context) {
this.activity = activity;
this.context = context;
this.dialog = new Dialog(context);
dialog.setContentView(R.layout.upload_dialog);
/* THIS LINE */
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
}
void showUploadDialog() {
dialog.show();
}
void dismissUploadDialog() {
dialog.dismiss();
}
...
}
1楼
您可以通过检查dialog.getWindow()
返回null
来防止该异常。
但是实际上,这种情况永远不会发生,因为只有在未显示与其绑定的活动时,它才会返回null。