2016-10-12 6 views
0

商品のリストを含むリストビューがあり、リストアイテムのクリックでリストの詳細が開きます。リストアイテムには、総重量、正味重量などの値が含まれます。リストビューでの変更を元に戻す

リストアイテムの詳細ページの上部に、戻るボタンの代わりに十字ボタンがあります。このボタンをクリックすると、「保存しますか?ボタンを「はい」または「いいえ」に変更します。

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; 

    } 

、Iは、異なる参照して、配列リストを作成しようとした値を設定することを試みました。

しかし、うまくいかないようです。

同じ解決方法をご提供ください。

+0

ご希望のことをお聞かせください –

+0

あなたは何をお望みですか?ユーザーが[いいえ]を押すと、アラートを閉じて現在のアクティビティを終了するだけです。元に戻すコードはありません。もちろん、変更を元に戻すことはできません。 – Joshua

+0

@ジョシュア、十字ボタンをクリックすると、YESまたはNOのダイアログポップアップが表示されます。 YESを押すと、入力された値がリストに保存され、NOを押すと変更内容は保存されず、リストの詳細をリストから開くときに以前の値が反映されます。 –

答えて

1

あり、この

があるユーザーは、十字ボタンをクリックしてもpreviousStateには触れていないときcurrentStateのを維持あなたはProductクラスに

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

を持っているとしましょう達成するための簡単な方法。 yesまたはnoの選択に今

プレスはいcurrentStateのとするとき押しませんがpreviosStateを検討することを検討してください。

+0

お返事ありがとうございます、もっと詳しく教えてください。 –

+0

@StackQuest取引は簡単です、あなたはcurrentStateの状態を保ち、previousStateに触れないでください。したがって、ユーザーがYESを押すと、現在の状態の選択が考慮され、NOの場合、previousStateはこの変数に何も変わらず、簡単にUNDO効果を得ることができます。 –

+0

ありがとう、しかし同じ、私は質問で、私のリストビューの以前の状態を復元する方法を尋ねた。私はアンドロイドに慣れているので、私はリストビューのデフォルト動作を知っていますが、以前の状態を保存する方法はわかりません。 –

関連する問題