Obtenir une référence à Vue dans mon Android Activité
J'ai un LinearLayout
composé de quelques Button
s et j'ai ajouter à mon activité dans le onCreate(..)
méthode avec setContentView(R.layout.myscreen)
. Pas de surprises jusqu'à présent.
Comment puis-je obtenir une référence à un itérateur de ces boutons? J'aimerais ajouter des écouteurs d'eux, mais je préfère ne pas le faire directement référence du Bouton à l'aide de leur android:id
.
Questions similaires ont été posées ici et ici mais ils n'ont pas tout à fait répondu à ma question.
Chaque
Au moment où j'allais il suffit de créer un nouveau port d'écoute pour chaque bouton, mais je suis ouvert aux suggestions. Je veux juste ajouter un onClickListener pour obtenir le texte dans le bouton pour faire quelque chose avec elle. Est-il un moyen plus simple de simplement ajouter un écouteur générique à l'ensemble de la Vue?
Button
va avoir le même auditeur?Au moment où j'allais il suffit de créer un nouveau port d'écoute pour chaque bouton, mais je suis ouvert aux suggestions. Je veux juste ajouter un onClickListener pour obtenir le texte dans le bouton pour faire quelque chose avec elle. Est-il un moyen plus simple de simplement ajouter un écouteur générique à l'ensemble de la Vue?
OriginalL'auteur Tim | 2011-02-28
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela fournir un id root_layout en xml pour LinearLayout
Où mLayout est objet de vous Linéaire de la Mise en page et de Votre activité doit implémente
OnClickListener
et ici va à l'auditeur généralREMARQUE: Pour que cela fonctionne correctement, vous Linéaire de la Mise en page doit ne contient touche pas d'autres points de vue
setContentView(..)
méthode mais pasgetContentView(..)
J'ai mis à jour ma réponse vérifier ça
Si je fais semblant de garder une référence à la vue de l'ensemble de la durée de vie de l'activité, dois-je utiliser un weakreference ou nah
OriginalL'auteur ingsaurabh
Vous devriez jeter un oeil à ma réponse ici.
En bref. J'avais d'attribuer les touches d'un auditeur par la définition de la
onClick
attribut dans le fichier XML de mise en page sur chaqueButton
.À l'intérieur de votre
Activity
vous aurez besoin d'une méthode publique comme celui-ci, qui en gros est ce que vous voulez faire dans votre auditeur.onLongClickListener
etOnFocusChangeListener
pour les boutons, j'ai encore besoin d'obtenir une référence pour les boutons. En dernier recours je peux juste faire référence directement aux Boutons à l'aide de leurandroid:id
mais c'est un peu rigide. Des idées? cheersbtw octave.. j'ai tenté de voter votre réponse, car il est utile aussi mais sa ne pas me laisser comme je l'ai été déconner. Pouvez-vous il suffit de modifier légèrement (ajouter des espaces) afin que je puisse re-voter.
OriginalL'auteur Octavian Damiean
Si vous voulez aller pour accéder à d'autres éléments, vous pouvez essayer de syntaxe suivante:
<ElementClass> <referencevariable> = (<ElementClass>) findViewById(R.id.<id_of_the_element>);
Par Exemple:
TextView textView= (TextView) findViewById(R.id.t1); //I used t1 to refer my textview in the Layout.
Cela pourrait fonctionner.
Vous pouvez ensuite utiliser ces points de vue avec leurs intégré les méthodes pour effectuer autant de travail que vous voulez.
textView.setText(message);
travaillé dans mon cas... peut venir à votre aide.OriginalL'auteur Veer Shrivastav