2017-07-06 3 views
0

Dans le code écrit ci-dessous à chaque fois que mon panier est lancé et lorsque le compilateur atteint la ligne HashMap<String, String> cart = session2.getUserDetails();, il charge par défaut les valeurs par défaut des éléments au lieu de charger les valeurs NULL Les valeurs chargées sont les valeurs données dans course précédente. Quelqu'un peut-il me demander où je me trompe dans mon code?Android SharedPreference Values ​​charger automatiquement

public class Cart extends AppCompatActivity { 

ListView lvCartItems; 
Button bClear; 
Button bShop; 
TextView tvTotalPrice; 

// Session Manager Class 
ProductSessionManager session2; 

ArrayList<CartItem> cartItems = new ArrayList<CartItem>(); 
Context context = Cart.this; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_cart); 

    textHome = (TextView) findViewById(R.id.text_home); 
    textSchedules = (TextView) findViewById(R.id.text_account); 
    textMusic = (TextView) findViewById(R.id.text_cart); 
    tvTotalPrice=(TextView)findViewById(R.id.tvTotalPrice); 

    lvCartItems = (ListView) findViewById(R.id.lvCartItems); 
    LayoutInflater layoutInflater = getLayoutInflater(); 


    // Session class instance 
    session2 = new ProductSessionManager(this); 


    // get user data from session 
    HashMap<String, String> cart = session2.getUserDetails(); 

    // item 
    String item1 = cart.get(ProductSessionManager.KEY_item1); 
    //quantity 
    String quantity1 = cart.get(ProductSessionManager.KEY_quantity1); 
    //rate 
    String rate1 = cart.get(ProductSessionManager.KEY_rate1); 
+0

Veuillez effacer vos valeurs de préférence partagées lorsque vous n'en avez plus besoin! –

+0

'Utiliser HashMap cart = null;' Au lieu de cela 'HashMap cart = session2.getUserDetails();'! – tahsinRupam

+0

c'est tout l'intérêt d'utiliser Sharedpreferences pour maintenir la session. Il conservera les valeurs précédentes jusqu'à ce que vous les mettiez à jour ou les effaciez. Si vous ne voulez pas que les valeurs précédentes effacent votre préférence partagée. – sumit

Répondre

0

Utilisez ceci pour effacer votre session.

SharedPreferences pref = 
context.getSharedPreferences("shared_preferences_name", "mode"); 
SharedPreferences.Editor editor = pref.edit(); 
editor.clear(); 
editor.commit();