Android 在对话框生成器实例化对话框之前,在侦听器中引用对话框

Android 在对话框生成器实例化对话框之前,在侦听器中引用对话框,android,dialog,Android,Dialog,我试图构建一个漂亮的快速对话框,让用户选择与主服务器的同步间隔 public void editSyncInterval(View view) { final AlertDialog intervalDialog; final CharSequence[] items = { "1 minute", "2 minutes", "5 minutes", "10 minutes", "30 minutes" }; AlertDialog.Builder builder = new AlertDi

我试图构建一个漂亮的快速对话框,让用户选择与主服务器的同步间隔

public void editSyncInterval(View view)
{

final AlertDialog intervalDialog;
final CharSequence[] items = { "1 minute", "2 minutes", "5 minutes", "10 minutes", "30 minutes" };

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Sync Interval");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener()
{
    public void onClick(DialogInterface dialog, int item)
    {
        switch(item)
        {
            case 0:
                //save
                intervalDialog.dismiss();
                break;
            case 1:
                //save
                intervalDialog.dismiss();
                break;
            case 2:
                //save
                intervalDialog.dismiss();
                break;
            case 3:
                //save
                intervalDialog.dismiss();
                break;
        } 
    }
});
intervalDialog = builder.create();
intervalDialog.show();
}
但是,在
intervalDialog.disclose()的4行上,我得到以下错误:
局部变量intervalDialog可能尚未初始化

我假设您需要在设置监听器等之后调用builder.create,但在这种情况下-您如何引用对话框本身-因为您还没有实例化它?

您将
对话框接口对话框
作为参数输入监听器。您可以对其调用
discouse()

你应该使用

 dialog.dismiss();
而不是

intervalDialog.dismiss();

为什么不使用onclick方法的dialog参数呢?如果包含生成器生成时将创建的对话框实例-->则应等于可用的intervalDialog。或者,您可以将intervalDialog变量设置为全局变量,例如,将其放入“活动成员”列表中。