Как закрыть диалог с помощью радиокнопок, нажав на радиокнопку - PullRequest
2 голосов
/ 08 декабря 2011

Похоже, это очень глупый вопрос, но я не могу понять, как закрыть мой диалог, когда пользователь нажимает радиокнопку в диалоговом окне .. (так что-то вроде alert.dismiss () в onClick)

final CharSequence[] items = {"Nederland", "België", "Denemarken", "Duitsland", "Frankrijk", "Italië", "Luxemburg", "Oostenrijk", "Verenigd Koningkrijg", "Zweden"};

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Selecteer het land");
        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {

                Button country = (Button) findViewById(R.id.land_fac_but);
                country.setText(items[item]);
            }
        });

        AlertDialog alert = builder.create();   
        alert.show();

Ответы [ 4 ]

8 голосов
/ 08 декабря 2011

Просто добавьте dialog.dismiss() внутри вашего OnClickListener:

builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int item) {
    Button country = (Button) findViewById(R.id.land_fac_but);
    country.setText(items[item]);
    dialog.dismiss();
  }
});

Если вы хотите отменить его, как только вы щелкнете по элементу.В противном случае вы можете захотеть создать более нестандартный Dialog, расширив AlertDialog.

0 голосов
/ 08 декабря 2011

Попробуйте это:

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Selecteer het land");  
        final AlertDialog alert;  
        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {

                Button country = (Button) findViewById(R.id.land_fac_but);
                country.setText(items[item]);
                alert.dismiss();
            }
        });

        alert = builder.create();   
        alert.show();
0 голосов
/ 08 декабря 2011

Попробуйте ниже apis:

cancel
dismiss

Ваш код будет выглядеть так:

 public void onClick(DialogInterface dialog, int item) {

            Button country = (Button) findViewById(R.id.land_fac_but);
            country.setText(items[item]);
            dialog.cancel();
        }

Между двумя есть небольшая разница, проверьте это:

http://developer.android.com/reference/android/app/Dialog.html#cancel() http://developer.android.com/reference/android/app/Dialog.html#dismiss()

0 голосов
/ 08 декабря 2011

Вы можете вызвать dialog.dismiss() в обработчике onClick().

...