AlertDialog в меню настроек - PullRequest
       4

AlertDialog в меню настроек

3 голосов
/ 07 ноября 2011

Я пытаюсь создать диалоговое окно оповещения со списком элементов с одним выбором (переключатели).Этот диалог будет вызываться, когда пользователь щелкает одно из двух меню параметров.

К сожалению, я не могу заставить этот код работать.Когда я нажимаю на первую опцию меню (настройки), ничего не появляется.Но когда я нажимаю на меню второй опции, тост выглядит так, как должно.Я был бы очень признателен, если бы кто-то мог указать на очевидную ошибку.

Ниже приведен список кодов для диалога предупреждений и меню параметров:

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 Ответ

5 голосов
/ 07 ноября 2011

Не забудьте:

alert.show();
...