Comment trouver l'élément à l'intérieur d'un gridview dans Android?
J'ai une grille de point de vue qui je remplir à l'aide d'un adaptateur personnalisé.
Pendant le remplissage de la gridview je donne à chaque élément à l'intérieur d'une balise unique.
Une fois cette gridview est rempli, je souhaite trouver un élément spécifique à l'intérieur de la gridview avec son étiquette. Comment puis-je la trouver?
Actuellement, je suis en train de faire ceci:
gridviewobject.findViewById(thetag);
//gridview object is the object of the gridview that i have populated.
Si l'objet n'est pas sur l'écran, puis c'est la vue n'existe probablement pas, dans ce cas, vous ne pouvez pas obtenir une référence à elle. Ce que vous pouvez utiliser est
pourriez-vous expliquer plus en détail ce que vous suggérez.
getChildAt
en combinaison avec getFirstVisiblePosition
et getChildCount
de déterminer les vues qui sont actuellement visibles, et quelle est la position de chacun d'eux correspond à.pourriez-vous expliquer plus en détail ce que vous suggérez.
OriginalL'auteur user590849 | 2011-05-12
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez écrit ci-dessus fonctionne, à l'exception de savoir qu'un) recherche d'un point de vue de son étiquette est probablement la méthode la plus lente que vous pouvez utiliser pour trouver un point de vue et b) si vous essayez de demander une vue avec un tag et que la vue n'est pas actuellement visible, alors vous obtiendrez
null
.C'est parce que
GridView
recycle son point de vue, donc, essentiellement, il ne fait jamais assez de points de vue pour s'adapter à l'écran, et puis juste change la position et le contenu de ces que vous faites défiler sur.Probablement une meilleure façon peut-être de faire
Essentiellement
findViewWithTag
fait la même chose, mais plutôt que de comparer des nombres entiers, il compare les tags (qui est plus lent, car ils sont des objets et non ints)Si chaque position unique dans le contrôle GridView a une unique balise ensuite, si vous savez ce que la marque que vous recherchez, vous devez également être en mesure de travailler sur ce poste, vous êtes à la recherche d'.
merci beaucoup, le code que j'était en train d'examiner directement accessibles childAt(pos).. qui a abouti à disposition null, votre code fonctionne parfaitement...
génial, merci beaucoup.
la bonne solution !!
OriginalL'auteur Joseph Earl