私はMainActivityのOnSharedPreferencesChanged
リスナーを初期化しようとすると、コンパイルエラーがメソッドfindPreferenceを解決できません。答えhereによると:MainActivityからfindPreference()を解決できませんか?
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, ""));
}
}
}
}
}