2012-07-31 20 views

risposta

17

sarebbe molto più semplice se hai appena usato android:summaryOff e android:summaryOn nel layout preferenza. Nessun codice richiesto. Per esempio:

<CheckBoxPreference 
     android:enabled="true" 
     android:key="alerts" 
     android:title="Alerts" 

     android:summaryOn="You will get notified when something interesting happens" 
     android:summaryOff="You will not be notified" 
     /> 

See: http://developer.android.com/reference/android/preference/CheckBoxPreference.html

1
public class Preferences extends PreferenceActivity 
     implements OnSharedPreferenceChangeListener { 

    public final static String KEY_CHECK = "check"; 
    private CheckBoxPreference mCheckBoxPreference; 

    @Override 
    public void onCreate(Bundle savedInstance) { 
     super.onCreate(savedInstance); 
     addPreferencesFromResource(R.xml.preferences); 
     mCheckBoxPreference = (CheckBoxPreference) getPreferenceScreen() 
      .findPreference(KEY_CHECK); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     getPreferenceScreen().getSharedPreferences() 
      .registerOnSharedPreferenceChangeListener(this); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     getPreferenceScreen().getSharedPreferences() 
      .unregisterOnSharedPreferenceChangeListener(this); 
    } 

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
      String key) { 
     if (key.equals(KEY_CHECK)) { 
      if (mCheckPreference.isChecked()) { 
       mCheckPreference.setSummary(mCheckPreference.getEntry()); 
      } 
     } 
    } 
} 
+0

Il tuo codice mi sta dando errori dicendo che onSharedPreferenceChangeListner è un'entità sconosciuta. Perché? – SweSnow

+0

Hai importato 'import android.content.SharedPreferences.OnSharedPreferenceChangeListener;'? oppure provare a utilizzare 'SharedPreferences.OnSharedPreferenceChangeListener'. – biegleux

Problemi correlati