[英]How to show Alert dialog after processbar dialog dismiss?
我想在进程栏对话框显示后显示警报对话框(单击listview以显示进程栏):这是我的代码显示进程栏对话框:
ProgressDialog barProgressDialog;
Handler updateBarHandler;
public void launchBarDialog(View view)
{
barProgressDialog = new ProgressDialog(MainActivity.this);
barProgressDialog.setTitle("Processing,please wait ...");
barProgressDialog.setMessage("Cracking password in progress ...");
barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL);
barProgressDialog.setProgress(0);
barProgressDialog.setMax(10);
barProgressDialog.show();
new Thread(new Runnable() {
@Override
public void run() {
try {
// Here you should write your time consuming task...
while (barProgressDialog.getProgress() <= barProgressDialog.getMax()) {
Thread.sleep(1000);
updateBarHandler.post(new Runnable() {
public void run() {
barProgressDialog.incrementProgressBy(2);
}
});
if (barProgressDialog.getProgress() == barProgressDialog.getMax()) {
barProgressDialog.dismiss();
}
}
} catch (Exception e) {
}
}
}).start();
}
请发布示例代码。 非常感谢你!!!
您需要在方法setOnDismissListener(DialogInterface.OnDismissListener listener):AlertDialog上实现DialogInterface.OnDismissListener接口。 它将帮助您完成所需的工作。 下面的代码将帮助您完成所需的工作。
ProgressDialog barProgressDialog;
Handler updateBarHandler;
public void launchBarDialog(View view) {
updateBarHandler = new Handler();
barProgressDialog = new ProgressDialog(MainActivity.this);
barProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
//Put your AlertDialog Here ....
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
alert.setMessage("This Alert Dialog will be show after the ProgressDialog dismissed");
alert.show();
}
});
barProgressDialog.setTitle("Processing,please wait ...");
barProgressDialog.setMessage("Cracking password in progress ...");
barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL);
barProgressDialog.setProgress(0);
barProgressDialog.setMax(10);
barProgressDialog.show();
new Thread(new Runnable() {
@Override
public void run() {
try {
// Here you should write your time consuming task...
while (barProgressDialog.getProgress() <= barProgressDialog
.getMax()) {
Thread.sleep(1000);
updateBarHandler.post(new Runnable() {
public void run() {
barProgressDialog.incrementProgressBy(2);
if (barProgressDialog.getProgress() == barProgressDialog
.getMax()) {
barProgressDialog.dismiss();
}
}
});
}
} catch (Exception e) {
Log.e("thiago", "error when trying to run the Thread==>"+e.getMessage());
}
}
}).start();
}
我希望代码可以帮助您解决问题。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.