Нет необходимости создавать собственный класс.Просто создайте внешнюю ссылку на ваш диалог и используйте его для показа / отклонения.
Вот пример, в котором я использую Builder для создания собственного диалога со многими кнопками:
Объявите его в своем классе:
private AlertDialog myDialog;
В onCreate () установите, когда вы хотите, чтобы ваш диалог отображался.В моем случае у меня есть кнопка:
addPhotoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select an option");
builder.setItems(new CharSequence[]
{"Take a picture", "Choose from library", "Another button"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
Toast.makeText(context, "Call camera", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(context, "Choose from library", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(context, "Another button", Toast.LENGTH_SHORT).show();
break;
}
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
addPhotoDialog.dismiss(); // Here I dismiss the Dialog even though it hasn't been created yet
}
});
handler.post(new Runnable() {
@Override
public void run() {
addPhotoDialog = builder.create(); // Creates the Dialog just before showing it
addPhotoDialog.show();
}
});
}
И вот как это выглядит: ![enter image description here](https://i.stack.imgur.com/sLmvZ.jpg)