在我的Android应用程序中,我使用一个警告对话框向用户显示一些信息,如果用户单击该对话框,则应该完成该活动。我的代码是
offer.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
AlertDialog alert=new AlertDialog.Builder(offer.this).create();
alert.setTitle("SVSugar Mill");
alert.setMessage("Offer Number is "+offer_no.getText().toString());
alert.setButton("Click to Dismiss", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
//return;
}
});
alert.show();
}
});
它不会等待用户对finish()的响应。相反,即使用户没有单击“警报”对话框,也会调用它。我知道这是异步的,但我需要这样做。(OfferNO应该显示给用户。当用户点击警告对话框时,它应该完成活动)。有没有办法做到这一点?
有人帮助我
编辑:
活动将在不等待用户点击警告对话框的情况下完成
答案 0 :(得分:0)
public void ShowDialog(final Context context) {
new AlertDialog.Builder(context)
.setTitle(android.R.string.dialog_alert_title)
.setMessage(UContext.getContext().getString(R.string.network_error))
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
this.finish();
}
}).show();
}
答案 1 :(得分:0)
问题是你在这里创建了两个AlertDialog实例:
alertDialog=builder.create();
builder.create().show();
然后你在实际没有显示的对话框上调用了dismiss()。这应该可以解决问题:
alertDialog=builder.show();
答案 2 :(得分:0)
在onClick方法之前使用此代码alert.setCancelable(false);
。