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