在Android中,要更新ProgressDialog的进度,您需要首先创建一个ProgressDialog实例,然后使用setProgress()
方法更新进度。以下是一个简单的示例:
import android.app.ProgressDialog;
public class MainActivity extends AppCompatActivity {
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个ProgressDialog实例
progressDialog = new ProgressDialog(this);
progressDialog.setCancelable(false); // 设置不可取消
progressDialog.setMessage("加载中...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置水平进度条
progressDialog.setProgress(0); // 初始化进度为0
}
}
private void performLongRunningTask() {
new Thread(new Runnable() {
@Override
public void run() {
// 执行耗时操作
for (int i = 0; i <= 100; i++) {
final int progress = i;
runOnUiThread(new Runnable() {
@Override
public void run() {
// 更新进度
progressDialog.setProgress(progress);
}
});
try {
Thread.sleep(50); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 耗时操作完成后,关闭ProgressDialog
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.dismiss();
}
});
}
}).start();
}
performLongRunningTask()
方法:button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示ProgressDialog
progressDialog.show();
// 执行耗时操作
performLongRunningTask();
}
});
这样,当您点击按钮时,ProgressDialog将显示并更新进度。请注意,这个示例使用了runOnUiThread()
方法来确保UI更新在主线程中执行。