Est-il préférable de stocker un ensemble de paires de clés utilisées dans une classe dans une interface distincte ou est-ce une meilleure pratique de la stocker dans strings.xml?
E.g. : p> puis l'accédez à mon code sous forme de préférences.pref1 p> vs. p> stocker en paires de noms de nom string.xml: p> puis y accédant dans ma classe comme: p>
4 Réponses :
Je tiens à partager ce que j'ai fait pour le stockage de préférences, j'utilise la construction d'Android dans une fonctionnalité de Android appelée Ceci utilise une classe d'utilitaire qui crée également pour aider à travailler avec Utiliser est assez simple: p> Pour charger les données, il vous suffit d'appeler: p>
Pour changer ou récupérer des données, appelez simplement le champ associé Getter / Setter: P>
Enfin, si vous modifiez le (s) champ (s), n'oubliez pas d'appeler SharedPreferences code> . Pour un accès facile, je crée un wrapper autour de SharedPreferences code> appelé usermodel code> qui ont des codes comme celui-ci: Dataconstant code> Dataconstant code > dans le code ci-dessus n'est qu'une classe qui contient une variable constante comme celle-ci: p> SharedPreferences code> plus facile: p>
sharedData.saveIntoPreferences();
sharedData.getPassword();
sharedData.setPassword("new password");
sauvegardiverferences code>: p>
UserModel sharedData = new UserModel(getApplicationContext());
C'est la bonne réponse. D'autres réponses sont des non-sens simples, mais je suppose à l'époque, d'autres auteurs n'étaient pas intéressés par Android. La chose est que les préférences peuvent également être définies dans les mises en page XML et à cette clé de localisation et la valeur par défaut doit également être fournie. Il y a un problème si ceux-ci sont définis dans la catégorie de classe Java de XML, nous n'aurons pas accès à ces constantes
À mon avis, essayez de minimiser l'utilisation du "contexte" dans votre projet pour éviter les fuites de mémoire ou charger des ressources inneceses.
Les préférences partagées sont une bonne option mais doivent utiliser le contexte de l'application ou de l'activation. Fréquemment utilisé lorsque vous voulez persister certaines valeurs dynamiques, c'est ce cas?. P>
Interfaces Java utilise uniquement les membres finaux (statiques) et sont très compacts et faciles à utiliser (rappelez-vous) dans le code. Essayez d'utiliser Toujours vous avez des membres intégrables statiques (comme IP, mots de passe, etc.). P>
Aussi, utilisez Enums pour gérer des états ou une autre chose dans votre application, par exemple P>
public interface Preferences {
public String HOST = "http://xxx.xxx.xxx.xxx";
public String PREF1 = "pref1";
public String PREF2 = "pref2";
public enum Connection { CONNECTED, DISCONNECTED, UNKNOWN }
}
C'est à vous d'utiliser la classe Java ou dans SharedPreference, la diffètence entre eux est votre but. À mon avis, si vous souhaitez que Save Constantes, utilisez simplement une classe Java qui s'étend enum. Sinon, les données utilisateur, les données de session enregistrées dans SharedPreference, vous pouvez renvoyer la réponse d'ARFIFBAYU, mais dans mon objectif, vous devez refléter la valeur de votre champ. P>
Je préfère utiliser strings.xml code> pour des ressources qui doivent être utilisées dans des fichiers de mise en page.
Pour les variables qui doivent être accessibles en classe I préfèrent l'interface code> way. P>
Stockez-le en Java si vous le pouvez. Stockez-le dans le fichier Conf si vous devez le faire.
Pourquoi une clé de préférence sauvegarderait-elle une interface ??? La chose est que l'on peut définir les préférences dans le fichier XML (PréférencesCrean, PreferCeCategory, etc.). Dans ce cas, il faut définir Android: la valeur clé et à partir de là, nous ne pouvons pas accéder à la classe Java. Idem pour Android: DefaultValue