我有一个以前作为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);
}
}
这是你想要的吗?