2010-02-12 1 views
3

Je suis nouveau sur Android et Stack Overflow. J'ai commencé à développer et Android App et je me demande deux choses:Android TextViews. La paramétrisation est-elle possible? La liaison au modèle est-elle possible?

1) Est-il possible de paramétrer un TextView? Disons que je veux faire un message texte qui dit quelque chose comme: "L'âge de l'utilisateur est de 38". Supposons que l'âge de l'utilisateur est le résultat d'un algorithme. En utilisant un framework i18n typique, j'écrirais dans mon fichier i18n quelque chose comme "L'âge de l'utilisateur est {0}". Ensuite, au moment de l'exécution, je remplirais les paramètres en conséquence. Je n'ai pas été en mesure de comprendre comment faire cela ou une approche similaire dans Android.

2) Supposons que j'ai un objet complexe avec beaucoup de champs. Par exemple: PersonModel qui a l'ID, le nom, l'âge, le pays, le jeu vidéo préféré, peu importe. Si je veux rendre toutes ces informations dans une seule mise en page dans une de mes activités, la seule façon que j'ai trouvée est d'obtenir tous les TextViews par id et de les remplir un à un par le code. Je me demandais s'il existe un mécanisme de mappage/liaison dans lequel je peux exécuter quelque chose comme: render (myPerson, myView) et que automatiquement par réflexion chacune des propriétés du modèle est mappée dans chacune des TextViews. Si quelqu'un a déjà travaillé avec SpringMVC, je cherche quelque chose de similaire à leur mécanisme pour mapper des objets/modèles de domaine à des vues (par exemple, spring: forms).

Merci beaucoup pour votre aide. J'espère que c'est utile pour quelqu'un d'autre =) bye!

Répondre

2

En réponse à # 1: Vous voulez String.format(). Ça va vous laisser faire quelque chose comme:

int age = 38; 
String ageMessage = "The user age is %d"; 
myTextView.setText(String.format(ageMessage, age)); 

Les deux vous utilisez le plus sont %d pour les nombres et %s pour les chaînes. Il utilise le format printf si vous le savez, si vous ne le faites pas il y a un petit tutoriel dans les docs Formatter. Pour le numéro 2, je pense que vous le faites de la meilleure façon (attrapez les crochets de vue et remplissez-les manuellement). #

Si vous rencontrez quelque chose d'autre, j'aimerais le voir.

+0

Merci mec, juste au cas où quelqu'un se demande comment i18n la chaîne je l'ai fait comme ça. Viii.setText (String.format (getString (R.string.time_riding), trail.timeTraveled)); GetString est une méthode que toutes les activités ont, convertit le pointeur dans le fichier xml en une chaîne, puis j'ai utilisé ce que me dit fiXedd =) – Santiago

Questions connexes