Убрать 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; } |
Я не знаю, правильный ли это метод или нет, но он работает :)
Я нихуя не понял, но спасибо за пост! Очень интересно!