Récupérer en Java une chaine déclarée dans un XML
Résolu
MGD Software
Messages postés
188
Date d'inscription
Statut
Membre
Dernière intervention
-
MGD Software Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
MGD Software Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
La question est certainement triviale, mais je suis (très) débutant en développement android et après des heures passées sur le net je n'ai pas trouvé la réponse.
Dans Android Studio (3.5.3), j'ai déclaré dans strings.xml une série de ressources chaine :
Ces ressources existent aussi en français (en utilisant le Translation Editor) et pourront éventuellement l'être dans d'autres langues.
Dans l'activité, je n'ai pas de problème pour affecter cette ressource à un TextView par exemple (text="@string/note07").
Mais dans mon code Java, je souhaiterais récupérer la valeur de cette ressource pour la comparer à une saisie par exemple, et en renvoyer une autre, également déclarée dans le XML.
Typiquement, ce que je voudrais faire est ceci :
Je ne peux pas mettre les valeurs de "case" en dur, car selon la langue la valeur de Fundamental est (par exemple) SOL en français et G par défaut.
Quelqu'un peut-il m'expliquer comment récupérer les valeurs des ressources déclarées dans le XML ?
La question est certainement triviale, mais je suis (très) débutant en développement android et après des heures passées sur le net je n'ai pas trouvé la réponse.
Dans Android Studio (3.5.3), j'ai déclaré dans strings.xml une série de ressources chaine :
<resources> ... <string name="note07">G</string> <string name="minor07">G/Em</string> ... </resources>
Ces ressources existent aussi en français (en utilisant le Translation Editor) et pourront éventuellement l'être dans d'autres langues.
Dans l'activité, je n'ai pas de problème pour affecter cette ressource à un TextView par exemple (text="@string/note07").
Mais dans mon code Java, je souhaiterais récupérer la valeur de cette ressource pour la comparer à une saisie par exemple, et en renvoyer une autre, également déclarée dans le XML.
Typiquement, ce que je voudrais faire est ceci :
private CharSequence GetGamme(CharSequence Fundamental) { CharSequence Result = ""; switch(Fundamental.toString()) { ..... case "@strings/note07": Result = "@strings/minor07"; break; ..... default: Result = "???"; } return Result; }
Je ne peux pas mettre les valeurs de "case" en dur, car selon la langue la valeur de Fundamental est (par exemple) SOL en français et G par défaut.
Quelqu'un peut-il m'expliquer comment récupérer les valeurs des ressources déclarées dans le XML ?
A voir également:
- Android get string from strings.xml
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Comment recuperer un message supprimé sur whatsapp - Guide
- Xml download - Télécharger - Édition & Programmation
- Comment récupérer un document dans le presse-papier samsung - Guide
3 réponses
Bonjour,
C'est la base de l'accès aux ressources dans un projet Android ;)
C'est la base de l'accès aux ressources dans un projet Android ;)
String maString = context.getString(R.string.note07);
Comme je l'ai dit, je suis très débutant en Andoid. Je maitrise mille fois mieux Visual Studio et le C#...
Merci pour la réponse, mais elle ne me permet pas de sortir de mon problème, en tous cas pas en l'état : context ne contient pas de méthode getString() (mais beaucoup d'autres méthodes que je n'ai pas encore explorées).
Par contre en tapant GetString, Android Studio ma proposé getApplicationContext().getString() qui ne provoque pas d'erreur de syntaxe et devrait faire l'affaire.
Par extension, j'ai cherché et trouvé getApplicationContext().getDrawable() pour récupérer dynamiquement mes images, qui ne provoque pas non plus d'erreur de syntaxe.
Je n'ai pas encore testé tout ça (actuellement j'ai contourné le problème avec une usine à gaz), mais cela devrait fonctionner.
Encore merci de m'avoir mis le pied à l'étrier.
Merci pour la réponse, mais elle ne me permet pas de sortir de mon problème, en tous cas pas en l'état : context ne contient pas de méthode getString() (mais beaucoup d'autres méthodes que je n'ai pas encore explorées).
Par contre en tapant GetString, Android Studio ma proposé getApplicationContext().getString() qui ne provoque pas d'erreur de syntaxe et devrait faire l'affaire.
Par extension, j'ai cherché et trouvé getApplicationContext().getDrawable() pour récupérer dynamiquement mes images, qui ne provoque pas non plus d'erreur de syntaxe.
Je n'ai pas encore testé tout ça (actuellement j'ai contourné le problème avec une usine à gaz), mais cela devrait fonctionner.
Encore merci de m'avoir mis le pied à l'étrier.
C'est évident.
Mais quand je ne peux pas passer sur un mur, j'en fais le tour.
Et dès que j'ai une échelle, je prends le chemin le plus court...
C'est ma première appli Android. Déjà, j'ai réussi à faire ce que je voulais, qui est nettement plus compliqué que ce qu'on trouve dans les tutos de développement Android. Maintenant, il faut l'optimiser. Y'a encore du boulot.
PS : je viens de commander un bouquin sur le développement Android. Je ne devrais plus avoir à poser des questions aussi basiques. Du moins je l'espère, si le bouquin est bon.
Mais quand je ne peux pas passer sur un mur, j'en fais le tour.
Et dès que j'ai une échelle, je prends le chemin le plus court...
C'est ma première appli Android. Déjà, j'ai réussi à faire ce que je voulais, qui est nettement plus compliqué que ce qu'on trouve dans les tutos de développement Android. Maintenant, il faut l'optimiser. Y'a encore du boulot.
PS : je viens de commander un bouquin sur le développement Android. Je ne devrais plus avoir à poser des questions aussi basiques. Du moins je l'espère, si le bouquin est bon.