2010-06-17 4 views
1

Je veux travailler de façon dynamique donc je veux lier des vues de texte, je pense de façon dynamique un exemple me expliquer la meilleuredynamique android contraignant

en supposant que je veux lier 7 vues d'image je peux le faire comme ceci:

Country = (EditText)findViewById(R.id.CountryEditText); 
City = (EditText)findViewById(R.id.CityEditText); 
LivinigCreture = (EditText)findViewById(R.id.LivingCretureE); 
Nature =(EditText)findViewById(R.id.NatureEditText); 
Inanimate = (EditText)findViewById(R.id.InanimateEditText); 
KnowenPersonality = (EditText)findViewById(R.id.KnowenPersonalityEditText); 
Occupation = (EditText)findViewById(R.id.OccupationEditText); 

mais laisse changer 7 avec NUMOFFILEDS comme une finale où je veux faire le précédent?

myImages = new ImageView [7]; 
    for (int i = 0; i<7;i++,????) 
    myImages[i] = (ImageView)findViewById(R.id.initialImageView01); 

avis: dans mon dossier R la R.id.initialImageView01 - R.id.initialImageView07 ne sont pas générer dans un écart de suite entre eux donc je ne sais pas comment faire cette architecture possible. et s'il y a un moyen quelqu'un peut me montrer un exemple comment travailler dynmiclly (comme l'utilisation de jsp sur android combiné ou quelque chose?)

id son possible de faire des temps constants est-il possible de construire une même constante xml nombre de fois que jsp fait
merci peep :)

Répondre

0

Vous pouvez stocker les ID eux-mêmes dans un tableau au début de votre activité; De cette façon, vous aurez seulement besoin de les écrire une fois et vous pourrez les indexer ensuite.

Quelque chose comme:

int[] initialImageViewIds = { 
    R.id.CountryEditText, 
    R.id.CityEditText, 
    R.id.LivingCretureE, 
    R.id.NatureEditText, 
    R.id.InanimateEditText, 
    R.id.KnowenPersonalityEditText, 
    R.id.OccupationEditText 
}; 

Ensuite, vous pouvez y accéder avec:

myImages = new ImageView [7]; 
for (int i = 0; i<7;i++) { 
    myImages[i] = (ImageView)findViewById(initialImageViewIds[i]); 
} 

Si cela ne suffit pas et que vous voulez vraiment obtenir les identifiants de façon dynamique, je suppose que vous pouvez utiliser la réflexion sur la R.id classe, éventuellement avec quelque chose comme R.id.getClass().getFields() et itérer sur les champs pour vérifier si leurs noms vous intéressent. Vérifiez également reference for the Class class.

+0

oui mais vous savez que c'est comme si ce n'était pas la vraie chose qui n'est pas liée à un contexte réel. –

+0

Désolé, peut-être que je ne comprends pas complètement ce que vous entendez par liaison axée sur le contexte. Une chose est, je ne pense pas que vous ayez absolument besoin de laisser le système générer des identifiants pour vous - je ne sais pas si c'est une bonne idée mais je ne vois pas de problèmes avec vous attribuant les ID manuellement dans votre XML mise en page avec 'android: id =" 12345 "' ou quelque chose. L'autre option que je vois est que vous pouvez créer des vues à l'exécution et les ajouter à votre vue parente, si par exemple vous ne savez pas à l'avance combien vous allez ajouter (par exemple TableRows dans un TableLayout) - Est-ce que c'est ce que tu veux? – Joubarc

Questions connexes