我之前创建的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
?
答案 0 :(得分:0)
如果你想存储2个以上的值,你就不能使用布尔值,因为boolean只能使用2个值。
上次修改:
elementsShow = settings.getBoolean(ELEMENTSSHOW, false);
if(elementsShow == false){
editor.putInt(ELEMENTSSHOW, elementsShow);
}
}
这是你想要的吗?