Android Case à cocher de préférence
Je ne trouve pas de tutoriels sur la case à cocher de préférence. Je peux utiliser un listpreference, mais je ne peux pas utiliser la case à cocher de préférence. Pour l'instant, je veux que si l'utilisateur définit dans le checbox, un toast msg dit "vrai", et si il met le tout, le toast msg dit "faux". Pour l'instant j'ai ceci:
preferences.xml:
<CheckBoxPreference
android:title="Show Call UI"
android:defaultValue="true"
android:summary="Show Call Interface when clicking call button"
android:key="checkboxPref" />
EditPreferences.java:
public class EditPreferences extends PreferenceActivity {
String listPreference;
boolean checkboxPreference;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
public void onStart(Intent intent, int startId) {
getPrefs();
}
private void getPrefs() {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
listPreference = prefs.getString("listPref", "nr1");
checkboxPreference = prefs.getBoolean("checkboxPref", true);
}
}
Edit: Solution merci à David Caunt:
checkboxPreference.
setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (newValue.toString().equals("true")) {
Toast.makeText(getApplicationContext(), "CB: " + "true",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "CB: " + "false",
Toast.LENGTH_SHORT).show();
}
return true;
}
});
- Veuillez le modifier pour avoir des variables de commencer avec de petites lettres, il est très difficile de voir les choses comme
CheckboxPreference
comme noms de variable !
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'ajouter un écouteur le de Préférence dans votre méthode onCreate
Vous pouvez convertir la valeur de la case à cocher dans un booléen. Cela pourrait être plus sûr et plus extensible que le contrôle de la toString() de la valeur.