Удалить пары ключ/значение общих настроек

Я храню некоторые значения оплаты в одном действии

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", "");

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

6 ответов


использовать SharedPreferences.Editor remove (String key) сделать то же самое.

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

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


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

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

для хранения значений в 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();

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

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

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

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();

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

чтобы очистить SharedPreferences, используйте Редактор SharedPreferences В вашем случае:

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

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

    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();

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