Убрать AlertDialog после выбора действия

В android’е, кнопка «назад» возвращает нас к предыдущему окну (так называемая активность, activity). AlertDialog — это такая же активность, поэтому если после выбора действия на AlertDialog’е, вы попробуете вернуться назад, то вы увидите опять это всплывающее окно. Что очень не удобно, согласитесь.

Я решил эту проблему следующим способом — вынес указатель на AlertDialog в поле класса.
Я для каждого элемента списка добавляю слушателя на клик:

tw.setOnClickListener(new View.OnClickListener() { // tw - TextView
	public void onClick(View view) {
		startDialog();
	}
});

startDialog(); — метод, показывающий AlertDialog :

private void startDialog() {
	LayoutInflater li = LayoutInflater.from(this);
	View dialogView = li.inflate(R.layout.prompt_edit_delete, null); // это layout для AlertDialog
	Builder builder = new Builder(this);
	builder.setTitle(R.string.choose_action); // заголовок AlertDialog
	builder.setView(dialogView); // устанавливаем вид
	ad = builder.create();  // ad - у нас должно быть полем класса!
	ad.show(); // показываем
}

В prompt_edit_delete у меня два действия: удалить и изменить. Это два метода, описанных в этом же классе: edit(View view) и delete(View view):

public void edit(View view) { // тоже самое и для delete(View view)
	// делаем что нам нужно
	ad.dismiss(); // убираем AlertDialog;
}

 

Я не знаю, правильный ли это метод или нет, но он работает :)

Читайте также:

1 комментарий

  1. Мастер Груша х_х:

    Я нихуя не понял, но спасибо за пост! Очень интересно!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *