2016-09-19 78 views
0

我有下面的代碼,我在一個對話框中創建一個進度條:的Android空對象引用對話框

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

+0

如果幫助,男人接受答案。我先回答。 – W4R10CK

+0

對不起,但是stackoverflow說古斯塔沃比你早一分鐘... – farahm

+0

它說我早了2分鐘。 – W4R10CK

回答

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

如果你的進度是你的對話框中,你需要更改線路

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

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

祝你好運!