ListView en AlertDialog

Estoy usando un ListView en un AlertDialog para mostrar una lista de elementos. Cuando el usuario hace clic en uno de los elementos, quiero que se cierre el cuadro de diálogo. No tendría ningún botón de acción en el diálogo. ¿Alguna idea sobre cómo lograr esto?

Debería poder hacer algo como:

final CharSequence[] items = {"Foo", "Bar", "Baz"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Make your selection"); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { // Do something with the selection } }); AlertDialog alert = builder.create(); alert.show(); 

Esta página tiene algunos otros ejemplos de diferentes tipos de cuadros de diálogo.

Puede usar un diseño al abrir un cuadro de diálogo de alerta. Es más fácil darle un estilo de esa manera. Para la lista en el cuadro de diálogo de alerta puede hacer algo como esto

Se usa debajo del código para mostrar la lista personalizada en 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.create(); builderSingle.show();