我有一个以前作为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

最佳答案

如果要存储两个以上的值,则可以使用布尔值,因为布尔值仅适用于两个值。
最后编辑:

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

这是你想要的吗?

10-05 22:54