2010-06-09 6 views
0

J'ai mon bouton de menu qui affiche une option Paramètres, ce qui amène de nombreuses ListPreferences comme le poids et différentes tailles pour les lunettes (c'est une application calculatrice BAC). Je vais prendre un exemple ... le poids va travailler.Comment obtenir une préférence pour la corrélation avec une variable?

Selon votre poids, cela affectera votre taux d'alcoolémie. J'ai un int pour Weight, fixé à 180. J'aimerais que quelqu'un puisse aller dans le menu Settings, choisir le "Weight" ListPreference, et choisir entre 100, 130, 150, 180, 210, 240, 270, et 300. J'ai déjà les numéros qui apparaissent (tous les tableaux ont été créés) et je peux en choisir un, mais cela ne fait rien parce que ce n'est pas lié à la variable Int Weight. Comment puis-je lier l'information?

Répondre

0

si vous utilisez PreferenceActivities standard:

public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener { 

    // <snip> 

    public void onSharedPreferenceChanged(SharedPreferences pref0, String key) { 
     if (key.equals("weight")){ 
      int weight = pref0.getInt("weight",100)); 

      // <you have now weight as int!> 
     } 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

     // Set up a listener whenever a key changes 
     getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 

     // Unregister the listener whenever a key changes 
     getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); 
    } 
+0

Pas de dés. Le poids int n'est toujours pas la variable de poids dans ma classe principale. –

+0

puis implémenter OnSharedPreferenceChangeListener dans votre classe et il va attraper les changements de poids via les préférences –

+0

alors qu'est-ce que je mettrais dans ma classe pour int Weight =? –

Questions connexes