首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的共享偏好值被覆盖?

为什么我的共享偏好值被覆盖?
EN

Stack Overflow用户
提问于 2015-11-23 07:35:48
回答 1查看 115关注 0票数 0

--我希望在共享首选项中存储不同事件的不同值。

例如:我有一个切换按钮,它将profilevisibility设置为On和off,所以如果我检查切换按钮,它应该将profilevisibility值存储为1。

现在,我还有另一个切换按钮,它将matchPreference设置为on和off,所以如果取消选中这个切换按钮,它应该将matchPreference值设置为0。

发生的是,当我将profileVisibility设置为ON时,它确实将值保存为1,但是现在如果将MatchPreference设置为OFF,它也会将值保存为0,但也会覆盖其他值。

这是我在活动中在OnCreate上调用的代码

代码语言:javascript
复制
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);

这里三个变量的值都会被覆盖,为什么?

这些是我在会话管理器中存储和获取值的方法。

代码语言:javascript
复制
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;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 09:44:08

为每个键分配不同的值。比如..。

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33865797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档