web-dev-qa-db-fra.com

Android. Trouver la vue par tag

J'ai une vue créée dynamiquement et je veux la trouver par étiquette, est-ce possible? Je connais la fonction findViewById, existe-t-il quelque chose de similaire pour les balises?

13
BenG
LinearLayout linLayout = (LinearLayout)findViewWithTag("layout1");

mais je ne pense pas que vous ayez besoin de tag pour une vue dynamique. Vous pouvez récupérer une ressource dynamique en suivant le code

for (int i=0; i < total_resource; i++) {
  //retrieve id dynamically
  int id = getResources().getIdentifier("resource"+i, "id", getPackageName());
  TextView myText = (TextView) findViewById(id); // get the element
}
18
user3384985

Créez ids.xml pour stocker votre identifiant:

<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="component1" /> <item type="id" name="component2" /> <item type="id" name="component3" /> </resources>

Définissez le composant créé dynamiquement comme:

Button1.setId(R.id.layout1); buttom2.setId(R.id.layout2); button3.setId(R.id.layout3);

Une autre méthode consiste à définir une balise sur votre composant lors de la création dynamique.

button1.setTag(1);

Et utilisez getTag() pour obtenir ce composant

1
user9237905