Android 对话框中 ProgressBar 上的空对象引用

Android null object reference on ProgressBar in dialog

我在对话框中创建 ProgressBar 的代码如下:

final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.wait_for_response_dialog);

final ProgressBar bar = (ProgressBar) findViewById(R.id.responseWaitBar);
final int[] i = {0};

bar.setProgress(i[0]);

我的 ProressBar 布局如下 wait_for_response_dialog.xml:

<ProgressBar
        android:id="@+id/responseWaitBar"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

但是第 bar.setProgress(i[0]); 行出现以下错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ProgressBar.setProgress(int)' on a null object reference

使用dialog初始化。 ProgressBar.

final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.wait_for_response_dialog);

final ProgressBar bar = (ProgressBar)dialog.findViewById(R.id.responseWaitBar);
final int[] i = {0};

bar.setProgress(i[0]);

如果您的 ProgressBar 在您的对话框中,您需要更改行

final ProgressBar bar = (ProgressBar) findViewById(R.id.responseWaitBar);

为此

final ProgressBar bar = (ProgressBar) dialog.findViewById(R.id.responseWaitBar);

祝你好运!

避免视图绑定,这是应用程序崩溃的原因。

 ProgressDialog progressDialog = new ProgressDialog(getContext());
            progressDialog.setMessage("Loading....");
            progressDialog.setCancelable(false);
            progressDialog.show();

用它来显示进度条