目前我想在我的Android应用程序中存储两种不同的数据类型作为SharedPreference。是否可以使用相同的键值存储它们?
e.g:
int id = 123;
myBoolean = false;
myString = "hello";
SharedPreferences.Editor edit = this.getSharedPreferences("MyPrefs", MODE_PRIVATE).edit();
edit.putString(String.valueOf(id), myString);
edit.putBoolean(String.valueOf(id), myBoolean);
因为目前,当我尝试获取字符串值时,我在这里得到一个ClassCast异常:
SharedPreferences settings = getSharedPreferences("MyPrefs", MODE_PRIVATE);
String myString = settings.getString(String.valueOf(123), "def");
我得到了这个例外:
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
答案 0 :(得分:5)
不可能,共享首选项是键值对(键是唯一的)。您的代码所做的是替换以前保存的值。因此,当您尝试获取值时,您会收到一个布尔值。