我正在尝试构建一个漂亮的小快速对话框,让用户选择与主服务器的同步间隔。
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 你已经设置了监听器等,但在这种情况下 - 你如何引用对话框本身 - 因为你还没有实例化它呢?
答案 0 :(得分:2)
您将DialogInterface dialog
作为参数添加到侦听器中。您可以在其上拨打dismiss()
。
你应该使用
dialog.dismiss();
而不是
intervalDialog.dismiss();