2015-11-23 2 views
0

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

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

Теперь я есть еще одна кнопка переключения там, который устанавливает matchPreference к включения и выключения, так что, если я снимите эту кнопку переключения, то следует установить значение matchPreference как 0.

, что происходит это, когда я установил profileVisibility ВКЛ, он сохраняет значение 1, но теперь, если я установить MatchPreference к OFF, он также сохраняет значения как 0, но также перезаписывает другие значения.

Это мой код называется на OnCreate в деятельности

HashMap<String, String> profileVisibility = session.getProfileVisibility(); 
profilevibility_value =profileVisibility.get(UserSessionManager.KEY_VISIBILITY); 

HashMap<String, String> discoverability = session.getDiscoverablity(); 
discoverability_value = discoverability.get(UserSessionManager.KEY_DISCOVER); 

HashMap<String, String> listmatches = session.getListMatches(); 
listmatches_value = listmatches.get(UserSessionManager.KEY_MATCH); 

Значения переписываются для всех трех переменных здесь, почему?

Это мои методы для хранения и извлечения значений в мой менеджер сеанса

public static final String KEY_VISIBILITY = "1"; 
public static final String KEY_DISCOVER = "1"; 
public static final String KEY_MATCH = "1"; 
public void StoreProfileVisiblity(String male){ 

     editor.putString(KEY_VISIBILITY, male); 
     editor.commit(); 
    } 
    public void StoreDiscoverablity(String status){ 

     editor.putString(KEY_DISCOVER, status); 
     editor.commit(); 
    } 
    public void StoreListMatches(String match){ 

     editor.putString(KEY_MATCH, match); 
     editor.commit(); 
    } 
    public HashMap<String, String> getProfileVisibility(){ 

     HashMap<String, String> mpv = new HashMap<String, String>(); 
     mpv.put(KEY_VISIBILITY, pref.getString(KEY_VISIBILITY, null)); 
     return mpv; 
    } 

    public HashMap<String, String> getDiscoverablity(){ 

     HashMap<String, String> dv = new HashMap<String, String>(); 
     dv.put(KEY_DISCOVER, pref.getString(KEY_DISCOVER, null)); 
     return dv; 
    } 
    public HashMap<String, String> getListMatches(){ 

     HashMap<String, String> lmv = new HashMap<String, String>(); 
     lmv.put(KEY_MATCH, pref.getString(KEY_MATCH, null)); 
     return lmv; 
    } 
+3

Что такое значения в UserSessionManager.KEY_VISIBILITY, UserSessionManager.KEY_DISCOVER и UserSessionManager.KEY_MATCH? – skabir

+0

Эти значения будут установлены из активности. Например. session.StoreDiscoverability ("1"). По умолчанию я установил все как 1, если его «Вкл.», А затем «1», или его значение 0 – Veer3383

+1

. Вопрос: что вы назначили по этим клавишам? – skabir

ответ

1

Присвоить различное значение для каждого из этих ключей. Как ...

public static final String KEY_VISIBILITY = "KEY_VISIBILITY"; 
public static final String KEY_DISCOVER = "KEY_DISCOVER"; 
public static final String KEY_MATCH = "KEY_MATCH"; 

Думаю, это решит вашу проблему.

+1

OMG какая ошибка ... ну да что помогло :) – Veer3383

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