Android Obtenir les Clés de preferences.xml
J'ai un PreferencesActivity
qui montre une preferences.xml
avec des cases à cocher.
preferences.xml
:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Keywords">
<CheckBoxPreference android:key="Essen"
android:title="Essen"
android:selectable="true"
android:enabled="true"
android:persistent="false">
</CheckBoxPreference>
<CheckBoxPreference android:key="Kleidung"
android:title="Kleidung"
android:selectable="true"
android:enabled="true"
android:persistent="false">
</CheckBoxPreference>
</PreferenceCategory>
</PreferenceScreen>
PreferencesActivity:
public class PreferencesViewController extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
Maintenant dans un autre ListActivity
j'en veux pour preuve toutes les Clés/Titres de l'coché des cases à cocher.
J'essaie d'accéder aux Préférences avec
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
ou
SharedPreferences prefs = getSharedPreferences("mypackage_preferences", 0);
Mais les deux ne fonctionnent vraiment.
Quand je l'appelle prefs.getAll().size()
le résultat est 0.
Je peux accéder aux Touches/Titre avec getPreferenceScreen().getPreference(i).…
mais il ne fonctionne pas à partir d'un autre Activity
, seulement à partir de la PreferenceActivity
.
Quelqu'un at-il une solution comment faire pour obtenir ce travail?
OriginalL'auteur liquid | 2011-03-09
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'un
PreferenceActivity
pour accomplir cette tâche.Pour accéder aux préférences, qui sont utilisés dans votre PreferenceActivity, vous devez utiliser
Si votre liste de données à partir du serveur, que vous pouvez utiliser une ListActivity /ExpandableListActivity /mesure de l'activité de la visualiser, mais de cette façon, vous devez écrire les gestionnaires de modifier les préférences.
La façon la plus courante de le faire est:
Si vous avez besoin, vous devez créer les mêmes emballages pour composer avec les int, boolean, etc. des valeurs.
Pourquoi
getBaseContext()
?Je suppose que nous ne saurons jamais
OriginalL'auteur rekaszeru
J'ai eu ce problème aussi. C'est un classique RTFM, malheureusement. Vous devriez mettre la ligne ci-dessous dans votre MainActivity du onCreate() méthode:
Cette information peut être trouvée dans le paragraphe "définition des Valeurs par Défaut" de http://developer.android.com/guide/topics/ui/settings.html
OriginalL'auteur Victor Ionescu
- Je utiliser
Et puis je peux accéder aux préférences via
prefs.get...()
, par exempleprefs.getString(key)
.Avez-vous essayé?
Edit: Viens de vérifier -
prefs.getAll()
fonctionne comme prévu et renvoie unMap
avec toutes les préférences.Le Problème est que je veux mettre à jour ces préférences à partir d'Internet/Serveur. Donc je ne sais pas les clés pour chaque case. Donc, les Préférences doivent être affichées dans une Activité/d'Affichage, l'Utilisateur peut cocher/décocher. Je dois lire le vérifié les préférences et les préférences doivent être mis à jour par un serveur... peut-être le PreferenceActivity n'est pas la bonne solution?! :-/
OriginalL'auteur Ridcully
Vous devez utiliser
Les préférences peut être vide si vous n'avez jamais ensemble par le biais de l'PreferencesActivity. Je pense également que votre ListActivity doit être dans le même package que la PreferencesActivity.
OriginalL'auteur Robby Pond