当前位置: 代码迷 >> java >> 设置对话框背景可绘制时,Android NullPointerException
  详细解决方案

设置对话框背景可绘制时,Android NullPointerException

热度:38   发布时间:2023-07-25 19:18:26.0

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

您可以通过检查dialog.getWindow()返回null来防止该异常。 但是实际上,这种情况永远不会发生,因为只有在未显示与其绑定的活动时,它才会返回null。

  相关解决方案