Je reçois une erreur de compilation ne peut pas résoudre la méthode findPreference lorsque j'essaie d'initialiser un écouteur OnSharedPreferencesChanged
dans mon MainActivity. Selon la réponse here:Impossible de résoudre findPreference() à partir de MainActivity?
findPreference() doit être appelé à partir d'une classe qui implémente l'interface PreferenceActivity
mais je ne comprends pas ce que le code pour le faire serait. Comment puis-je me débarrasser de l'erreur du compilateur et définir avec succès les auditeurs pour les changements de préférence?
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, ""));
}
}
}
}
}