0

В моем текущем приложении я сделал набор контрольных точек и хочу, чтобы там была возможность удалить их из другой активности. Я увидел несколько вопросов, подобных этому в stackoverflow, и попытался выполнить их инструкции и немного помахать, но ничего не получилось. Что не так с моим кодом?Удаление общих настроек в android

Первая активность: (активность с предпочтениями я пытаюсь удалить)

public void setDefaults() { 
    SharedPreferences mPrefs = getSharedPreferences(RESETT_PASSPOINTS, 0); 
    SharedPreferences.Editor editor = mPrefs.edit(); 
    editor.putString(RESETT_PASSPOINTS,Identifier); 
    editor.commit(); 
} 

Вторая активность (активность я пытаюсь удалить из)

public void deleteDefaults(){ 

    SharedPreferences mPrefs = getSharedPreferences(Activity1.RESETT_PASSPOINTS, 0); 
    String str = mPrefs.getString(Activity1.RESETT_PASSPOINTS, Activity1.Identifier); 
    if (str.equals(Activity1.Identifier)){ 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     editor.clear(); 
     editor.commit(); 

    } 

} 

Кроме того, Я знаю, что могу использовать намерения «.put extra», но я не хочу запускать действие, которое я удаляю с

ответ

0

Попробуйте заменить:

if (str.equals(Activity1.Identifier)){ 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     editor.clear(); 
     editor.commit();  
    } 

Для этого:

if (str.equals(Activity1.Identifier)){ 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     editor.remove(Activity1.RESETT_PASSPOINTS).commit(); 
    } 

Надеется, что это помогает!

0
public void updateDefaults(){ 
    SharedPreferences mPrefs = getSharedPreferences(RESETT_PASSPOINTS, 0); 
    SharedPreferences.Editor editor = mPrefs.edit(); 
    editor.putString(RESETT_PASSPOINTS,"OTHER_VALUE"); 
    editor.commit(); 
} 

Лучший вариант для вас - это обновить его и снова проверить его значение.

Смежные вопросы