2016-10-12 2 views
0

У меня есть представление списка, которое содержит список продуктов и по щелчку элемента списка, информация о списке открывается. Элемент списка содержит значения, такие как вес брутто, вес нетто и т. Д.Отменить изменения в listview onbackpressed

В верхней части страницы с подробными сведениями о списке. У меня есть крест-кнопка вместо кнопки «Назад», которая при нажатии откроет диалоговое окно «Вы хотите сохранить изменения "и кнопкой да или нет.

При нажатии YES, я могу сохранить изменения в виде списка, но при нажатии NO, я не могу отменить изменения.

Ниже приведен код для отображения диалогового окна:

@Override 
    public boolean onBackPressed() { 

     final AlertDialog alert = new AlertDialog.Builder(getContext()).create(); 
     alert.setMessage(getContext().getString(R.string.save_activity)); 
     alert.setCancelable(false); 
     alert.setButton(getContext().getString(R.string.strYes), new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
        saveAndClose(); 
      } 
     }); 
     alert.setButton2(getContext().getString(R.string.strNo), new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       alert.dismiss(); 
       ((Activity)getContext()).finish(); 
      } 
     }); 
     alert.show(); 
     return true; 

    } 

Для того же, я попытался создать список массивов с разными ссылками и попытался установить значение.

Но, похоже, не работает.

Пожалуйста, предоставьте любое решение для него.

+0

Упомянуть о своем требовании –

+0

Что вы ожидали? Вы только увольняете предупреждение и завершаете текущую деятельность, когда пользователь нажимает No. Нет кода отмены. Конечно, вы не можете отменить изменения. – Joshua

+0

@ Joshua, При нажатии кнопки перекрестного вызова появляется диалоговое окно, в котором есть ДА или НЕТ. При нажатии YES ее следует сохранить введенные значения для списка и после нажатия NO, изменения не должны сохраняться, и предыдущие значения должны отражаться при открытии деталей списка из списка. –

ответ

1

Там простой способ для достижения этой цели

скажем, у вас есть класс Продукт

public class Product{ 
    private boolean currentState; 
    private boolean previosState; 
} 

Поддерживайте CurrentState, когда пользователь нажимает на кнопку поперечному, но не касайтесь previousState.

Теперь на да или нет выбора при нажатии Да рассмотрит CurrentState и когда пресса Нет рассматривать previosState.

+0

спасибо за быстрый ответ, можете ли вы подробнее рассказать подробнее. –

+0

@StackQuest сделка проста, вы сохраняете состояние текущего состояния и не трогаете предыдущее состояние. Поэтому, когда пользователь нажимает кнопку YES, вы рассматриваете текущий выбор состояния, и когда NO, то предыдущееState ничего не меняет эту переменную, и вы можете легко получить эффект UNDO. –

+0

спасибо, но то же самое, я спросил в вопросе, как восстановить предыдущее состояние моего списка.? Поскольку я новичок в android, я знаю, что поведение по умолчанию в представлении списка нажато, но не знает, как сохранить предыдущее состояние, пожалуйста, помогите –