2011-08-25 4 views
1

J'ai créé sur TextViews de la boucle 5, leur ai mis du texte et les ai ajoutés à LinearLayout. Après cela, j'ai besoin de changer le texte en eux. Je veux tous les supprimer et en créer un nouveau sur la boucle. Mais avant la suppression de TextView, je dois être sûr qu'il existe. Comment faire?comment vérifier si un TextView existe

for(int i=0; i<5; i++){ 
    TextView tv = new TextView(context); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    tv.setLayoutParams(params); 
    tv.setId(i); 
    tv.setText("some data"); 
    ll.addView(tv); 
} 

Nous vous remercions de votre aide et de votre temps!

Répondre

4

Si vous voulez supprimer tous puis juste effectuer ll.removeAllViews().

+0

Merci! Bonne idée, mais dans ce LinearLayout présente une autre vue :) J'ai besoin d'eux :) – lubart

+0

Ensuite, ajoutez un 'LinearLayout 'supplémentaire à cette mise en page et ajouter tous les' TextView' à cette mise en page interne. – Michael

+0

Vous êtes les bienvenus =) – Michael

1

Vous devez conserver une référence à chacune des vues de texte que vous créez si vous souhaitez les supprimer. Si je comprends bien votre question, créez simplement un tableau de TextViews avec 5 éléments et exécutez la boucle pour faire ce que vous voulez avec eux. Pour « supprimer » eux, vous pouvez appeler:

tv[i].setVisibility(View.GONE); 

Pour modifier le texte et les rajoutez:

tv[i].setText("New Text"); 
tv[i].setVisibility(View.VISIBLE); 
+0

Merci! J'y ai pensé et ça fonctionne. Mais intéressant comment je peux supprimer View que j'ai créé à partir du code de cette façon. – lubart

+0

Peu importe que ce soit créé en code ou non. – IncrediApp

1

Une meilleure solution consiste à conserver des références à votre TextViews dans une liste, de sorte que vous puissiez interagir avec eux plus tard après les avoir créés. Sinon, vous ne pourrez pas voir les objets.

Questions connexes