Android两种不同的SharedPreference类型具有相同的ID

时间:2014-09-30 16:38:45

标签: android

目前我想在我的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

1 个答案:

答案 0 :(得分:5)

不可能,共享首选项是键值对(键是唯一的)。您的代码所做的是替换以前保存的值。因此,当您尝试获取值时,您会收到一个布尔值。