2 zxd 72 zxd_72 于 2013.03.12 11:33 提问

如何从其它的方法中删除对话框?

我创建一个对话框,按照下面的代码,提供一个标题和消息,这个对话框可以在任何地方被调用。

public void alertbox(String title, String mymessage)
{   new AlertDialog.Builder(this)
        .setTitle(title)
        .setMessage(mymessage)
        .setNeutralButton(android.R.string.cancel,
                new DialogInterface.OnClickListener() 
                {   public void onClick(DialogInterface dialog, int whichButton) {}
                })
        .show();
}

但是当我从另一个方法中删除对话框时被锁定删除不了。

private void doCheck() {
    alertbox("status", getString(R.string.checking_license));
    mChecker.checkAccess(mLicenseCheckerCallback);

    alertbox.dismiss();
} 

是 alertbox.dismiss(); 语句导致崩溃的吗?如何在别的方法中删除对话框?

3个回答

CuGBabyBeaR
CuGBabyBeaR   2013.03.12 14:19
已采纳

我不知道你这个程序是怎么通过编译的

alertbox.dismiss();

alertbox是什么变量呢?

你应该在方法alertbox(String title, String mymessage)中返回一个AlertDialog类型的变量
然后传递给变量alertbox,这样才能正确的显示和使之消失

AlertDialog alertbox;
public AlertDialog alertbox(String title, String mymessage){
    return new AlertDialog.Builder(this)
       .setTitle(title)
       .setMessage(mymessage)
       .setNeutralButton(android.R.string.cancel,
             new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int whichButton) {}
            })
       .create();
}

private void doCheck() {
    alertbox = alertbox("status", getString(R.string.checking_license));
    mChecker.checkAccess(mLicenseCheckerCallback);

    alertbox.dismiss();
} 
qiushibaiyi
qiushibaiyi   2013.03.12 13:35

哪一句导致了崩溃……请查看logcat……

myc_100
myc_100   2013.03.12 14:51

我使用 alertBox 返回对话框

public AlertDialog alertbox(String title, String mymessage)

然后不论在哪调用它,都可以参考返回对话框,需要的时候删除它。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!