1

我有一个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);    

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

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

4

1 回答 1

0

如果要存储超过 2 个值,则不能使用布尔值,因为布尔值只能使用 2 个值。

最后编辑:

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

这是你想要的吗?

于 2015-12-09T11:28:46.613 回答