java - 在 Firebase 上传的自定义对话框上设置 ProgressBar

标签 java android firebase dialog progress-bar

我尝试添加自定义对话框,其中包含一个进度栏,用于显示文件当前上传到 Firebase 的过程。但它给了我这个错误。我认为将进度传递到自定义对话框时出现问题

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

       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) {
                }
            });

最佳答案

你应该使用

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);

关于java - 在 Firebase 上传的自定义对话框上设置 ProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38420576/

相关文章:

android - Google Play 服务已过时。需要 10084000 但找到 9879470。无法更新

android - Firebase Analytic Search_Term 参数值未显示

java - 从End到Start解析json

java - Java 中更快的埃拉托斯特尼筛法和素数分解

android - 使用android中的警报框弹出窗口从gridview更新数据库

java - Android - Jackson JSON 解析器在 'release' 版本中返回空值

html - Firebase 返回具有 $value、$id 和 $priority 的数据 AngularJs

java - 想要在线程的 run() 函数的 Main 函数中使用一个 int 数组

java - 实现类的实例

Android 复选框首选项