从另一个类调用警报对话框

时间:2011-03-03 16:41:50

标签: android alertdialog

我试图从另一个类调用一个警告对话框,但这不是让我将它设置为静态。它显示只允许final,这意味着它不能从其他类调用它。我不确定我是做得对还是有可能。我在第2课中有警告对话框:

static final AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
            alertDialog = new AlertDialog.Builder(this).create();

        alertbox.setTitle("Hello");
        alertbox.setMessage("Press Continue or Cancel");
        alertbox.setPositiveButton("CONTINUE",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {


                    }
                });

        alertbox.setNegativeButton("CANCEL",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

        alertDialog.setIcon(R.drawable.icon);

然后在class1中调用它:

QuizValidation.alertbox.show();

哪个也无法解决。

如果我可以将第2类中的警告框设置为静态,我可以解决这个问题。

非常感谢任何建议。

由于

3 个答案:

答案 0 :(得分:2)

更好的想法是在基类中定义所有对话框,让我们调用它......好吧BaseActivity

Class BaseActivity extends Activity{

int DIALOG_X = 1;
int DIALOG_Y = 2;
int DIALOG_Z = 3;
// More Dialog identifiers 

ProgressDialog progressDialog;
AlertDialog alertDialog;
//More dialog objects if you need

protected Dialog onCreateDialog(int id) {
    Dialog dialog;
    switch(id) {
    case DIALOG_X:
        // do the work to define the X Dialog
        break;
    case DIALOG_Y:
        // do the work to define the Y Dialog
        break;
    default:
        dialog = null;
    }
    return dialog;
}
}

然后在另一个类中扩展BaseActivity并调用

showDialog(DIALOG_X); 

当您需要显示Dialog_X

答案 1 :(得分:2)

创建一个Constructor,您可以在其中获取活动。像这样 -

Activity activity;
public YourClass (Activity activity){
         this.activity = activity;
}

现在,使用此activity作为参数 -

AlertDialog.Builder adb=new AlertDialog.Builder(activity);

因为仅使用context无法显示对话框。您需要为此提供Activity

答案 2 :(得分:0)

您也可以简单地扩展AlertDialog,并自行创建并重复使用。