2015-07-23 3 views
3

хранить несколько значений платежей в одной деятельностиудалить общие предпочтения пар ключ/значение

SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
productId = spreferences.getString("productId", ""); 
purchaseToken = spreferences.getString("purchaseToken", ""); 
orderId = spreferences.getString("orderId", ""); 

Теперь я получить их в другом качестве

SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
productId = spreferences.getString("productId", ""); 
purchaseToken = spreferences.getString("purchaseToken", ""); 
orderId = spreferences.getString("orderId", ""); 

Мой вопрос, чтобы удалить их во второй деятельности после получения их. Спасибо.

+0

Кажется, вы ошибочно указали на запасную часть. Должно иметь использование SharedPreferences.Editor –

ответ

4

Используйте SharedPreferences.Editor remove (String key), чтобы сделать то же самое.

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

Обратите внимание, что при возврате к предпочтениям все удаления выполняются в первую очередь, независимо от того, вы вызывали ли вы до или после методы ввода в этом редакторе.


Так что в вашем случае вы можете использовать его как

SharedPreferences.Editor editor = spreferences.edit(); 
editor.remove("productId"); 
editor.remove("purchaseToken"); 
editor.remove("orderId"); 
editor.commit(); 
0

Вам нужно сделать то же самое, как я удаляю свои настройки.

SharedPreferences preferences = contextAct.getSharedPreferences("PREF_KEY", 0); 
        preferences.edit().remove("productId").commit(); 
        preferences.edit().remove("purchaseToken").commit(); 
        preferences.edit().remove("orderId").commit(); 


    Format : preferences.edit().remove("Your Key").commit(); 

Это очистит ваши предпочтения.

1

Вы можете удалить любые значения, связанные с определенным ключом, используя это,

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.remove("your_key"); 
editor.commit(); 

или

SharedPreferences prefs = context.getSharedPreferences(name, mode); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.remove(your_key) 
editor.commit(); 
+0

Да, я попробовал этот SharedPreferences.Editor.remove (orderId). Но компилятор не распознает метод remove (String value) :( – Theo

+0

Ответ обновлен! –

0
SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor=spreferences.edit(); 
editor.remove("productId"); 
editor.remove("purchaseToken"); 
editor.remove("orderId"); 
editor.commit(); 
// you can also use editor.apply(); instead of editor.commit(); using apply will handle the removing in the background 
0

Чтобы очистить SharedPreferences, используйте SharedPreferences Editor В вашем случае:

SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor = spreferences.edit(); 
editor.clear(); 
editor.commit(); 
+0

У меня есть другие значения общих настроек в моем втором действии. Я хочу удалить только 3 из них. Не все из них. – Theo

+0

Хорошо, тогда [remove()] (http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#remove (java.lang.String)) - это путь. Не забудьте [commit() ] (http://developer.android.com/reference/android/content/SharedPreferences.Editor.html # commit()) – krekle

+0

Yeap.I сделал это :) – Theo

5

Чтобы сохранить значения в SharedPreference, используйте код ниже:

SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Editor spreferencesEditor = spreferences.edit(); 
spreferencesEditor.putString("productId", "value of prodId"); 
spreferencesEditor.putString("purchaseToken", "value of purchaseToken"); 
spreferencesEditor.putString("orderId", "value of orderId"); 
spreferencesEditor.commit(); 

Чтобы удалить конкретное значение из SharedPreference, используйте ниже код:

SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Editor spreferencesEditor = spreferences.edit(); 
spreferencesEditor.remove("productId"); //we are removing prodId by key 
spreferencesEditor.commit(); 

Удалить все значения из Sh aredPreference, используйте нижеприведенный код:

SharedPreferences spreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Editor spreferencesEditor = spreferences.edit(); 
spreferencesEditor.clear(); 
spreferencesEditor.commit();