我想用名为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
}


SharedPreferencesSecurePreferences都有getBoolean方法。但是Android Studio告诉我Cannot resolve method 'getBoolean(Java.lang.String, boolean)'

最佳答案

该错误是由您的pref变量的类型引起的。对象类没有getBoolean方法。可能有很多解决方案。例如:如果SecurePreferences扩展了SharedPreferences接口(或实现了该接口),则pref变量的类型应为SharedPreferences。

10-05 23:09