如何在Android中获取对象的首选项类型?

Mar*_*lon 4 android preferences sharedpreferences object-type

我可以通过以下方式String从共享首选项中获取:

sharedPreferences.getString("key_name","default value");
Run Code Online (Sandbox Code Playgroud)

但是我如何检查它key_name是否真的是一个String

如果它是布尔键值怎么办?

我们可以使用的方法如下:

if(sharedPreferences.isTypeOf(Boolean,"key_name")) {}
Run Code Online (Sandbox Code Playgroud)

Tho*_*aud 5

如果你知道你会得到一个布尔值,你可以使用

sharedPreferences.getBoolean("key_name",true);
Run Code Online (Sandbox Code Playgroud)

否则你可以做(​​没有测试,基于doc)

Map<String, ?> all = sharedPreferences.getAll();
if(all.get("key_name") instanceof String) {
    //Do something
}
else if(all.get("key_name") instanceof Boolean) {
    //Do something else
}
Run Code Online (Sandbox Code Playgroud)

但是你应该知道你存储在你的内容中 SharedPrefrences