在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更新在主線程中執行。