我想用我的Android应用中的SharedPreferences
替换一个名为SecurePreferences
的类(this的修改版本)。如何灵活调用其中一个实例的方法?
示例:
SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SecurePreferences securePref = new SecurePreferences(sharedPref, "", key, true);
...
public void loadSettings() {
Object pref;
if (Settings.usingEncryptedPreferences) {
pref = securePref;
} else {
pref = sharedPref;
}
boolean musicEnabled = pref.getBoolean("musicEnabled", true);
boolean soundEnabled = pref.getBoolean("soundEnabled", true);
boolean vibrationEnabled = pref.getBoolean("vibrationEnabled", true);
// and so on
}
SharedPreferences
和SecurePreferences
都有getBoolean
方法。但Android Studio告诉我Cannot resolve method 'getBoolean(Java.lang.String, boolean)'
。
答案 0 :(得分:1)
错误是由pref变量的类型引起的。 Object类没有getBoolean方法。可以有许多解决方案。例如:如果SecurePreferences扩展了SharedPreferences接口(或实现它),那么pref变量的类型应该是SharedPreferences。