在SharedPreferences上,将变量类型从Boolean更改为Integer

时间:2015-12-09 11:22:00

标签: java android android-sharedpreferences

我之前创建的SharedPreferences变量是Boolean类型,其中包含与之关联的所有逻辑,如下面的代码所示:

    public Boolean getElementsShow() {
    return elementsShow;
}

public void setElementsShow(Boolean elementsShow) {
    this.elementsShow = elementsShow;
    SharedPreferences.Editor editor = settings.edit();
    editor.putBoolean(ELEMENTSSHOW, elementsShow);
    editor.commit();
}    

elementsShow = settings.getBoolean(ELEMENTSSHOW, 0); 

但是,随着必需品的变化,现在我需要更改此变量并将其作为Integer进行检索:

elementsShow = settings.getInt(ELEMENTSSHOW, 0);    

但正如预期的那样,当我将所有要检索的内容更改为Integer时,它会给出错误 java.lang.Boolean cannot be cast to java.lang.Integer因为变量已保存为Boolean,现在正以Integer ...

进行访问

我知道我可以创建一个新变量并忽略之前创建的变量,但有没有办法更改引用以开始存储为Integer

1 个答案:

答案 0 :(得分:0)

如果你想存储2个以上的值,你就不能使用布尔值,因为boolean只能使用2个值。

上次修改:

    elementsShow = settings.getBoolean(ELEMENTSSHOW, false); 
    if(elementsShow == false){
 editor.putInt(ELEMENTSSHOW, elementsShow);
    }
}

这是你想要的吗?