Question

Je veux avoir un élément dans mon menu de préférences qui effectue les opérations suivantes:

  • Afficher la liste des options.
  • Beaucoup sont sélectionnables
  • Montant maximal d'options à choisir 2.

Les possibilités que je pensais de:

  1. Faire un PreferenceScreen séparés et montrant des options comme checkBoxes, mais je ne sais pas où placer la logique d'options max 2.
  2. L'extension de DialogPreference et de le faire à la main.

Quelle est la meilleure façon?

Était-ce utile?

La solution

L'extension DialogPreference voulez-vous obtenir le plus proche en termes de look and feel; les classes Preference sont assez unflexible et non extensible dans mon expérience.

Je ne me souviens pas trop de PreferenceScreen, mais j'imagine que c'est similaire.

Dans une application j'ai travaillé, nous avons fini par activités distinctes, lancées par Intent d'un élément de Preference onClick. Cela nous a permis de développer facilement des écrans de préférence qui nécessitent une logique de validation un peu plus complexe que d'habitude.

Autres conseils

Vous pouvez mettre la logique des deux options maximum dans une PreferenceActivity implémente OnSharedPreferenceChangeListener vous pouvez activer l'auditeur d'écouter seulement quand nécessaire de faire quelque chose comme ceci:

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

@Override
protected void onPause() {
    super.onPause();
    // Unregister the listener
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top