【发布时间】:2016-12-24 00:53:02
【问题描述】:
当我尝试在 MainActivity 中初始化 OnSharedPreferencesChanged 侦听器时,出现编译器错误无法解析方法 findPreference。根据答案here:
findPreference() 应该从实现 PreferenceActivity 接口的类中调用
但我不明白执行此操作的代码是什么。如何摆脱编译器错误并成功设置首选项更改的侦听器?
MainActivity.java
public class MainActivity extends FragmentActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences.OnSharedPreferenceChangeListener listener;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
//Test preference menu
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (key.equals("pref_wood")) {
Preference woodPref = findPreference(key); //COMPILER ERROR HERE
MainActivity.getGLSurfaceView().setTexture("");
// Set summary to be the user-description for the selected value
woodPref.setSummary(sharedPreferences.getString(key, ""));
}
}
}
}
}
【问题讨论】:
标签: android android-preferences android-sharedpreferences