Java Android progressBar没有';t设置呼叫改装后的进度

Java Android progressBar没有';t设置呼叫改装后的进度,java,android,progress-bar,retrofit,progressdialog,Java,Android,Progress Bar,Retrofit,Progressdialog,我试图模拟改装呼叫的进度,因此在执行呼叫之前,我以以下方式启动进度: public void runSimulateProgress(final CustomDialogLoad d){ new Thread(new Runnable() { @Override public void run() { if (d != null){ int progress = 0;

我试图模拟改装呼叫的进度,因此在执行呼叫之前,我以以下方式启动进度:

public void runSimulateProgress(final CustomDialogLoad d){
    new Thread(new Runnable() {
        @Override
        public void run() {
            if (d != null){
                int progress = 0;
                while (d.getProgress() < 99){
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    progress = progress+10;
                    d.setProgress(progress);
                }

            }
        }
    }).start();

}

该方法位于CustomDialogLoad类中,您正试图从另一个线程更改视图。检查这个问题

基本上,改变:

 d.setProgress(progress);


像这样更改代码

public void runSimulateProgress(final CustomDialogLoad d){
new Thread(new Runnable() {
    @Override
    public void run() {
        if (d != null){
            int progress = 0;
            while (d.getProgress() < 99){
                try {
         ((Activity) ctx).runOnUiThread(new Runnable() {
            public void run() {
                progress = progress+10;
              d.setProgress(progress);
            }
        }
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }

        }
    }
}).start();
public void runSimulateProgress(最终自定义对话框加载d){
新线程(newrunnable()){
@凌驾
公开募捐{
如果(d!=null){
int progress=0;
而(d.getProgress()<99){
试一试{
((活动)ctx.runOnUiThread(新的可运行的(){
公开募捐{
进度=进度+10;
d、 设定进度(进度);
}
}
睡眠(100);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
}
}).start();

}

我更改了代码,但仍然不起作用,我使用方法“setProgress”编辑了问题的代码,尝试在
循环和
运行
方法时使用断点对其进行调试。现在不明白为什么它不起作用,抱歉。
 d.setProgress(progress);
d.post(new Runnable() {
    public void run() {
        d.setProgress(progress);
    } 
}
public void runSimulateProgress(final CustomDialogLoad d){
new Thread(new Runnable() {
    @Override
    public void run() {
        if (d != null){
            int progress = 0;
            while (d.getProgress() < 99){
                try {
         ((Activity) ctx).runOnUiThread(new Runnable() {
            public void run() {
                progress = progress+10;
              d.setProgress(progress);
            }
        }
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }

        }
    }
}).start();