Obtenir l'id d'un point de vue comme une Chaîne de caractères dans l'événement onClick
Hi im essayant d'obtenir l'ID que j'chacun de ces linéaires mises en page mais au lieu im obtenir
android.widget.LinearLayout@41032a40 ou similaires, ce qui n'est pas d'une grande aide pour moi.
J'ai mis l'id de row1, et c'est ce que je voudrais revenir.
Je suis sûr que j'ai fait quelque chose de similaire avant, donc je ne peux pas comprendre pourquoi il est de retour ci-dessus.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/row1"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="@android:color/black"
android:onClick="xmlClickHandler" />
<LinearLayout
android:id="@+id/row2"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="@android:color/white"
android:onClick="xmlClickHandler" />
<LinearLayout
android:id="@+id/row3"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="@android:color/black"
android:onClick="xmlClickHandler" />
<LinearLayout
android:id="@+id/row4"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="@color/white"
android:onClick="xmlClickHandler" />
<LinearLayout
android:id="@+id/row5"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="@color/yellow"
android:onClick="xmlClickHandler" />
<LinearLayout
android:id="@+id/row6"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="@color/blue"
android:onClick="xmlClickHandler" />
public void xmlClickHandler(View v) {
Log.d("CLICK ROW", String.valueOf(v));
}
Voulez-vous dire que vous voulez simplement la chaîne de caractères sur la ligne "(n)" pour être affiché dans chaque ligne?
Pourquoi avez-vous besoin de l'id comme une chaîne de caractères?
Parce que je voudrais savoir plus précisément qui linéaire dispositions ont été cliqué, je devrais peut-être utiliser un tableau pour cela, mais depuis il n'y a pas de mise en surbrillance en mode tactile, la méthode reste la même. Je veux que l'utilisateur de toucher chaque modèle, selon une question (c'est à dire toucher le rouge et le noir bars) et j'aurai besoin de sauver ceux qui ont été pressées quelque part. Retourner l'id que des nombres a peu de contexte pour moi, en tant que développeur. J'ai besoin de le voir, la ligne 1, ligne 3, ligne 4, au lieu de numéros qui va rendre les choses compliquées.
La définition d'un id sera toujours de créer un ensemble de caractères à s'associer avec un lisibles à la chaîne par exemple row1, row2, etc., dans votre cas. Ils sont auto-générés dans votre R.java fichier. À l'aide de
Pourquoi avez-vous besoin de l'id comme une chaîne de caractères?
Parce que je voudrais savoir plus précisément qui linéaire dispositions ont été cliqué, je devrais peut-être utiliser un tableau pour cela, mais depuis il n'y a pas de mise en surbrillance en mode tactile, la méthode reste la même. Je veux que l'utilisateur de toucher chaque modèle, selon une question (c'est à dire toucher le rouge et le noir bars) et j'aurai besoin de sauver ceux qui ont été pressées quelque part. Retourner l'id que des nombres a peu de contexte pour moi, en tant que développeur. J'ai besoin de le voir, la ligne 1, ligne 3, ligne 4, au lieu de numéros qui va rendre les choses compliquées.
La définition d'un id sera toujours de créer un ensemble de caractères à s'associer avec un lisibles à la chaîne par exemple row1, row2, etc., dans votre cas. Ils sont auto-générés dans votre R.java fichier. À l'aide de
android:text@string/row1
vous donnera de la chaîne. Je ne pense pas que vous pouvez modifier l'ID dans R.java...OriginalL'auteur lorless | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre
android:tag="row1"
et l'utilisationLog.d("CLICK ROW", String.valueOf(v.getTag()));
pour imprimer le id.Donne 'nul' pour moi.
OriginalL'auteur JoeJ
Identification peut être vérifiée à l'aide de c. getID()
Vous pouvez simplement vérifier que
et effectuer votre tâche de votre choix en conséquence.
OriginalL'auteur NarendraJi
Vous pouvez le faire de cette façon:
Et que vous devez analyser la chaîne de résultat.
OriginalL'auteur GrandeMajo
utilisation
v.getId()
au lieu d'obtenir l'IdOriginalL'auteur stinepike
v
est une instance de la classe de la Vue, et vous pouvez utiliser legetId()
méthode pour obtenir l'Affichage de l'ID.Tous les codes sont des numéros. Vous pouvez le comparer à votre Id comme si(v. getId()==R. id.row1)
Ouais, malheureusement, ce qui rend les choses compliquées pour moi. Je peut utiliser cette méthode si les balises ne fonctionnent pas.
OriginalL'auteur Raghav Sood
La Solution la plus Simple qui est juste une seule ligne de code. Il peut Extraire les id de la vue.
OriginalL'auteur Amrudesh Balakrishnan
Je viens de voir une autre question, apparemment, vous ne pouvez pas retourner l'id comme une chaîne de caractères.
OriginalL'auteur lorless