2012-07-31 10 views

Respuesta

17

sería mucho más simple si usted acaba de utilizar android:summaryOff y android:summaryOn en su diseño preferencia. No se requiere código Por ejemplo:

<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" 
     /> 

Ver: 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

Su código me está dando errores que dicen que onSharedPreferenceChangeListner es una entidad desconocida. ¿Porqué es eso? – SweSnow

+0

¿Ha importado 'import android.content.SharedPreferences.OnSharedPreferenceChangeListener;'? o intente utilizar 'SharedPreferences.OnSharedPreferenceChangeListener' en su lugar. – biegleux

Cuestiones relacionadas