我想用名为SharedPreferences
的类(这是this的修改版本)替换Android应用中的SecurePreferences
。如何灵活调用其实例之一的方法?
例:
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)'
。 最佳答案
该错误是由您的pref变量的类型引起的。对象类没有getBoolean方法。可能有很多解决方案。例如:如果SecurePreferences扩展了SharedPreferences接口(或实现了该接口),则pref变量的类型应为SharedPreferences。