Cloner la visualisation de texte pour l'ajouter à un ViewGroup

J'ai un ViewGroup défini dans XML avec une vue à l'intérieur, à l'heure onCreate j'aimerais avoir une variable de ceux-ci.
Je ne veux pas faire preuve de tracas de l'utilisation d'un attribut listview + car il est clair que la liste ne changera pas puisque onCreate ()
C'est plus ou moins le code que j'aimerais avoir.

TextView mytextview = myViewGroup.findViewById(R.id.mytext); for(String test : strings){ mytextview = mytextview.clone(); mytextview.setText(test); myViewGroup.addView(mytextview); } 

Mais ça ne fonctionne pas.

  • Comment créer une application Android avec ICI UI qui fonctionne avec Gingerbread et Froyo?
  • Le service exporté ne nécessite pas d'autorisation: qu'est-ce que cela signifie?
  • Comment afficher les endroits proches comme atm, les hôpitaux dans la carte google de Android?
  • La vue Fragment dans ViewPager n'est pas restaurée lors de la reprise
  • Est-il possible d'avoir plusieurs types de caractères dans la même TextView?
  • React-Native build failed - impossible d'installer tous
  • 3 Solutions collect form web for “Cloner la visualisation de texte pour l'ajouter à un ViewGroup”

    Peut-être utiliser un gonfleur, et mettre la visualisation de texte dans un fichier de mise en page externe:

     View v = LayoutInflater.from(this).inflate(R.layout.textview_include, null); viewGroup.addView(v); 

    Si vous faites cela, vous obtiendrez très probablement le même identifiant pour chaque vue créée de cette façon. Cela signifie faire des choses comme ((TextView) v) .setText ("some text"); Sera appelé sur chaque TextView précédemment gonflé à partir de la même mise en page. Vous pouvez toujours le faire de cette façon, mais vous devez appeler setId () et disposez d'une méthode raisonnable pour vous assurer que vous ne recevez pas le même identifiant deux fois par rang – incrémentation ou heure universelle, etc.

    De plus, je pense que Android réserve une certaine gamme d'ID pour les ID créés dynamiquement. Vous pouvez éviter les ID dans cette gamme; Mais honnêtement, je ne connais pas le système d'identification, donc je me trompe sur ce point.

    En utilisant le code de Mathias Lin et en utilisant l'indice de javahead76:

     LinearLayout x = (LinearLayout) findViewById(R.id.container); for (int i = 0; i < 5; i++) { View c = LayoutInflater.from(this).inflate(R.layout.singlerow, x); TextView t = ((TextView)findViewById(R.id.textView1)); t.setId(i+10000); t.setText("text"+i); } TextView b = (TextView) findViewById(10003); b.setText("10003"); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.