Autore Topic: Alert Dialog con una lista a scelta singola  (Letto 244 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 319
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Alert Dialog con una lista a scelta singola
« il: 21 Marzo 2016, 16:07:35 CET »
0
Salve a tutti!

Nella mia app vorrei creare un'alert dialog che ti permetta di selezionare il sesso dell'utente.
In quanto a creare l'alert dialog con la lista in "single choiche" non è un problema, ma come faccio (nel caso l'utente riapra la lista) ad avere selezionato l'ultima opzione selezionata?

Poi vi chiedo un consiglio.... nel dialog è meglio avere i soliti tasti "annulla" ed "ok" oppure meglio chiudere il dialog una volta selezionata l'opzione?

Vi lascio con il codice che uso per creare il tutto.

Codice (Java): [Seleziona]
 Sex.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                //Source of the data in the DIalog
                final CharSequence[] array = {"Maschio","Femmina"};
                // Set the dialog title
                builder.setTitle("Sesso")
                    // Specify the list array, the items to be selected by default (null for none),
                    // and the listener through which to receive callbacks when items are selected
                        .setSingleChoiceItems(array, 1, new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                Sex.setText(array[which]);
                                sesso = array[which].toString();
                            }
                        });

                 builder.show();
            }
        });

Grazie mille in anticipo!

Post unito: 22 Marzo 2016, 09:01:46 CET
Ho risolto ^^ era semplicissimo!

è il secondo valore di questa riga che imposta l'elemento già selezionato:
Codice (Java): [Seleziona]
 .setSingleChoiceItems(array, last_selected, new DialogInterface.OnClickListener() {
quindi alla fine diventa:
Codice (Java): [Seleziona]
 Sex.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                final AlertDialog.Builder builder = new AlertDialog.Builder(Registrazione.this);
                //Source of the data in the DIalog
                final CharSequence[] array = {"Maschio","Femmina"};
                // Set the dialog title
                builder.setTitle("Sesso")
                    // Specify the list array, the items to be selected by default (null for none),
                    // and the listener through which to receive callbacks when items are selected
                        .setSingleChoiceItems(array, last_selected, new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                Sex.setText(array[which]);
                                sesso = array[which].toString();
                                last_selected=which;
                                dialog.dismiss();
                            }
                        });


                 builder.show();
            }
        });
« Ultima modifica: 22 Marzo 2016, 09:01:46 CET da ValerioAdo, Reason: Merged DoublePost »