2016-07-17 44 views
0

我試圖添加自定義對話框,其中包含一個進度條以顯示當前文件上傳到firebase的過程。但它給了我這個錯誤。我認爲有路過進步自定義對話框問題爲Firebase上的自定義對話框設置ProgressBar上傳

顯示java.lang.NullPointerException:嘗試在空對象引用調用虛擬方法無效android.widget.ProgressBar.setProgress(INT)'

 uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
        double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 

       int currentprogress = (int) progress; 

        final Dialog dialog = new Dialog(testactivity.this); 
        WindowManager.LayoutParams aaa = new WindowManager.LayoutParams(); 
        aaa.copyFrom(psdialog.getWindow().getAttributes()); 
        aaa.width = WindowManager.LayoutParams.MATCH_PARENT; 
        aaa.height = WindowManager.LayoutParams.WRAP_CONTENT; 

        dialog.setContentView(R.layout.progresslayout); 
        dialog.setTitle("Custom Dialog"); 




        ProgressBar progressbar = (ProgressBar) findViewById(R.id.progressbar); 
progressbar.setProgress(currentprogress); 

        psdialog.show(); 
        psdialog.getWindow().setAttributes(lp); 





       } 
      }).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onPaused(UploadTask.TaskSnapshot taskSnapshot) { 
       } 
      }); 
+2

使用'dialog.findViewById(R.id.progressbar)'。 – pRaNaY

回答

3

您應該使用

View dialogView = LayoutInflater.from(getContext()).inflate(R.layout.progresslayout, null, false); 
dialog.setContentView(dialogView); 
ProgressBar progressbar = (ProgressBar) dialogView.findViewById(R.id.progressbar); 

,而不是

ProgressBar progressbar = (ProgressBar) findViewById(R.id.progressbar);