6

Ilekroć próbuję dodać tę linię, powoduje awarię mojej aplikacji. Czy nie umieszczam tego we właściwym miejscu?Android registerOnSharedPreferenceChangeListener() powoduje awarię w widoku niestandardowym

preferences.registerOnSharedPreferenceChangeListener(myActivity.this); 

Oto moja klasa

class Simulation extends View { 

    // I declare my program variables here 
    public Simulation(Context context) { 
     super(context); 
     // get the preferences 
     SharedPreferences preferences = PreferenceManager 
       .getDefaultSharedPreferences(context); 
     preferences 
       .registerOnSharedPreferenceChangeListener(myActivity.this); 
     String storedPreference = preferences.getString("nPref", "0"); 
    } 

    public void onSharedPreferenceChanged(
      SharedPreferences sharedPreferences, String key) { 
     Log.i(TAG, "preferences changed!"); 
    } 
} 

Dzięki!

Odpowiedz

13

Czy podoba Ci się ta

SharedPreferences.OnSharedPreferenceChangeListener prefListener = 
     new SharedPreferences.OnSharedPreferenceChangeListener() { 
    public void onSharedPreferenceChanged(SharedPreferences prefs, 
      String key) { 
     if (key.equals("date")) { 
     } 
    } 
}; 

i

preferences.registerOnSharedPreferenceChangeListener(prefListener); 
+0

Dzięki temu działało świetnie! – unknownone

+0

Serdecznie zapraszamy – Rasel

+0

Doskonały i elegancki. Nie wiedziałem, że to istnieje. Działa świetnie. +1 i dzięki. – Shawn

Powiązane problemy