android obtenir la position de l'élément cliqué dans gridview
comme nous le faire savoir en utilisant android affichage de la grille, nous pouvons faire la suite et être averti quand un élément est cliqué:
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(PopularCapitActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
nous savons aussi que, si la cellule de la grille contient un élément cliquable, dire à un bouton, le ci-dessus ne pas me faire virer.
donc actuellement, j'ai un affichage de la grille, chaque cellule a sa propre touche, alors maintenant, lorsque l'utilisateur clique sur le bouton, il aura sa propre action basé sur la cellule du bouton réside dans, ma question est, comment puis-je accéder à la position de la cellule dans le gestionnaire de bouton?
grâce
Êtes-vous à l'aide d'un adaptateur personnalisé pour le contrôle GridView?
oui, j'ai un personnalisé juste de faire l'extension de la BaseListAdapter
oui, j'ai un personnalisé juste de faire l'extension de la BaseListAdapter
OriginalL'auteur user1697965 | 2012-10-04
Vous devez vous connecter pour publier un commentaire.
En supposant que vous utilisez un adaptateur personnalisé pour le contrôle GridVIew, dans la méthode getView vous pouvez simplement ajouter une étiquette sur le Bouton de l'objet qui contient la position adoptée dans getView:
Puis, dans la onClickListener méthode, le point de vue qui est passé (le bouton), vous pouvez le faire:
Et de gérer la valeur de la position à partir de là.
EDIT:
Il semble que la meilleure pratique serait de faire:
plutôt que d'utiliser l'Entier constructeur.
Merci! Je viens de mettre à jour ma réponse à prendre en compte les meilleures pratiques. Il est recommandé d'utiliser Entier.valueOf(position) plutôt que par le constructeur.
Excellente solution! Maintenant, cependant,
Integer.valueOf(position)
n'est pas nécessaire, juste de passageposition
va fonctionner, trop.1+ merci beaucoup .. 🙂
si vous souhaitez obtenir la position dans gridview vous pouvez simplement utiliser int tag=(int).getTag(); int currentRow=tag/9;( ma grille de 9*9) int currentCol=tag%9; jeu de tag, j'ai utilisé le bouton.setTag((9*i)+j) au cours d'une itération dans gridview
OriginalL'auteur dennisdrew
OriginalL'auteur Mirza Adil