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

时间:2016-09-19 14:44:19

标签: android nullreferenceexception android-progressbar

我有以下代码,我在对话框中创建了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]);

我在wait_for_response_dialog.xml中的ProressBar布局如下:

<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

2 个答案:

答案 0 :(得分:1)

使用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]);

答案 1 :(得分:1)

如果您的ProgressBar位于对话框中,则需要更改行

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

这个

final ProgressBar bar = (ProgressBar) dialog.findViewById(R.id.responseWaitBar);
祝你好运!