选项菜单中的AlertDialog

3
我正在尝试创建一个带有单选项列表(单选按钮)的警报对话框。当用户单击两个选项菜单之一时,将调用此对话框。
不幸的是,我无法使此代码工作。当我点击第一个选项菜单(设置)时,什么也没有出现。但是当我点击第二个选项菜单时,Toast消息会正常显示。如果有人能指出明显错误,我将不胜感激。
以下是警报对话框和选项菜单的代码清单:
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;

ProgressDialog msgInitGPS = null;
final CharSequence[] items = {"m/s", "km/h", "mph"};

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.settings: AlertDialog.Builder UnitSelection = new AlertDialog.Builder(this);
                            UnitSelection.setTitle("Select Unit");
                            UnitSelection.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int item) {
                                    Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
                                }
                            });
                            AlertDialog alert = UnitSelection.create();
                            break;

        case R.id.help:     Toast.makeText(this, "This will launch the Help screen", Toast.LENGTH_LONG).show();
                            break;
    }
    return true;
}

非常感谢您的时间和帮助!

1
我认为你缺少 alert.show()。或者,UnitSelection.show() 应该创建并显示此对话框。 - harism
1个回答

5

不要忘记这个:

alert.show();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接