Android警报对话框问题

时间:2013-03-04 11:17:44

标签: java android alertdialog android-alertdialog

在我的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应该显示给用户。当用户点击警告对话框时,它应该完成活动)。有没有办法做到这一点?

有人帮助我

编辑:

活动将在不等待用户点击警告对话框的情况下完成

3 个答案:

答案 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);