2015-11-23 45 views
0

我想在共享首選項的不同事件中存儲不同的值。爲什麼我的共享首選項值被覆蓋?

例如。我有一個切換按鈕,這臺profilevisibility開啓和關閉,所以如果我檢查的切換按鈕,它應存儲profilevisibility值爲1

現在我也有有另一種切換按鈕,這臺matchPreference開啓和關閉,所以,如果我取消這個切換按鈕,它應設置matchPreference價值爲0

發生的事情是,當我設置profileVisibility爲ON,它保存值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