在对话框构建器实例化对话框之前,在侦听器中引用对话框

时间:2014-02-20 11:59:13

标签: 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 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.dismiss();的4行上,我得到以下(相当预期的)错误:The local variable intervalDialog may not have been initialized

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

1 个答案:

答案 0 :(得分:2)

您将DialogInterface dialog作为参数添加到侦听器中。您可以在其上拨打dismiss()

你应该使用

 dialog.dismiss();

而不是

intervalDialog.dismiss();