ショッピングカートのIDを保存するためにSharedPreferencesをHomeActivity.java
に追加しました。アプリが開くとSharedPreferencesが自動的に消去されます
SharedPreferences cartItems = getSharedPreferences("AddedItems", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = cartItems.edit();
if (cartItems.getStringSet("AddedItems", null) == null){
Set<String> cart = new HashSet<String>();
editor.putStringSet("AddedItems", cart);
editor.apply();
} else {
Set<String> cart = cartItems.getStringSet("AddedItems", null);
}
あなたが見ることができるように、cartItems.getStringSet("AddedItems", null)
が存在しているかどうかを確認することになっコード:これは、ランチャーの活動である私はHomeActivity.java
にそれのために初期化されたコードを、です。存在する場合はcart
をcartItems.getStringSet("AddedItems", null)
の内容に設定しますが、存在しない場合はcart
を新しいHashSet<String>
として定義し、cartItems
SharedPreferencesに追加します。
何らかの理由でcartItems.getStringSet("AddedItems")
がnullに等しいと思われるため、アプリが開くたびにカートをリセットするたびにリセットされます。
これは私がSharedPreferencesにIDを追加する方法です:
HomeActivity.cart.add(productId);
HomeActivity.editor.putStringSet(HomeActivity.AddedItems, HomeActivity.cart);
HomeActivity.editor.apply();
にはどうすればいいので、それはアプリが開きますcartItems.getStringSet("AddedItems")
たびにリセットされないことを修正できますか?
apply()の代わりにcommit()を使用し、問題が継続するかどうかを確認してください。 –
ハッシュセットにいくつかの項目を追加してみてください。 –
HomeActivity.AddedItemsが "AddedItems"と等しいことは間違いありませんか?これらのすべてのキーに同じ静的最終変数を使用する必要があります。 –