Вам даже не нужно расширять Dialog
и создавать собственный диалог; AlertDialog
обеспечивает все функции, которые вы ищете. Ниже приведено не что иное, как вставка из темы диалога на веб-сайте разработчика.
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(),
items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
Это приведет к:
Своп выше builder.setItems(...)
для:
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { ... } );
чтобы добавить переключатель с каждой опцией или:
builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() { ... } );
для флажков.