Come posso visualizzare una vista elenco in una finestra di dialogo degli avvisi di Android?

In un'applicazione Android, voglio visualizzare una vista elenco personalizzata in un AlertDialog.

Come posso farlo?

Soluzione

Usato sotto il codice per visualizzare l'elenco personalizzato in AlertDialog

AlertDialog.Builder builderSingle = new AlertDialog.Builder(DialogActivity.this);
builderSingle.setIcon(R.drawable.ic_launcher);
builderSingle.setTitle("Select One Name:-");

final ArrayAdapter arrayAdapter = new ArrayAdapter(DialogActivity.this, android.R.layout.select_dialog_singlechoice);
arrayAdapter.add("Hardik");
arrayAdapter.add("Archit");
arrayAdapter.add("Jignesh");
arrayAdapter.add("Umang");
arrayAdapter.add("Gatti");

builderSingle.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });

builderSingle.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String strName = arrayAdapter.getItem(which);
                AlertDialog.Builder builderInner = new AlertDialog.Builder(DialogActivity.this);
                builderInner.setMessage(strName);
                builderInner.setTitle("Your Selected Item is");
                builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,int which) {
                                dialog.dismiss();
                            }
                        });
                builderInner.show();
            }
        });
builderSingle.show();
Commentari (11)

È possibile utilizzare un dialogo personalizzato.

Layout di dialogo personalizzato. lista.xml.

<?xml version="1.0" encoding="utf-8"?>


Nella tua attività

Dialog dialog = new Dialog(Activity.this);
       dialog.setContentView(R.layout.list)

ListView lv = (ListView ) dialog.findViewById(R.id.lv);
dialog.setCancelable(true);
dialog.setTitle("ListView");
dialog.show();

Modifica:

Usando alertdialog

String names[] ={"A","B","C","D"};
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.custom, null);
alertDialog.setView(convertView);
alertDialog.setTitle("List");
ListView lv = (ListView) convertView.findViewById(R.id.lv);
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,names);
lv.setAdapter(adapter);
alertDialog.show();

custom.xml

<?xml version="1.0" encoding="utf-8"?>


Snap

Commentari (17)

Come principiante ti suggerirei di passare attraverso http://www.mkyong.com/android/android-custom-dialog-example/

Ti faccio un riassunto di quello che fa fondamentalmente

  1. Crea un file XML per il dialogo e l'attività principale
  2. Nell'attività principale nel posto richiesto crea un oggetto di classe android Dialog
  3. Aggiunge lo stile personalizzato e il testo basato sul file XML
  4. Chiama il metodo dialog.show().
Commentari (0)