J'ai une mise en page simple, mais je ne peux que définir une balise string. Comment définir une balise entière?
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:tag="1"
Android:src="@drawable/image" />
METTRE À JOUR
J'ai découvert comment définir les balises Integer dans une mise en page XML. Nous devons spécifier une variable entière dans tout fichier de ressources xml. Cela devrait ressembler à ça:
res/values / value.xml:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="int1">15</integer>
<integer name="int2">1</integer>
</resources>
Et maintenant, nous sommes libres d'utiliser "@ entier/int1" ou "@ entier/int2" comme balises pour nos widgets XML, par exemple:
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:tag="@integer/int2"
Android:src="@drawable/image" />
Cependant, dans mon cas, j'ai préféré définir les balises par programme :)
En XML, vous ne pouvez définir que String. Mais dans le code, vous pouvez utiliser View.setTag(int value);
car il faut Object. Pour lire une valeur, vous devez la convertir en Integer int value = (Integer)view.getTag();
.
À partir de la modification de l'auteur, j'ai tenté d'utiliser @integer/int2
pour définir la balise en tant qu'entier, mais il semble toujours que getTag()
renvoie la balise en tant que String
(au moins en Jellybean). Integer.parseInt(String)
peut convertir une String
en une Integer
et @integer/int2
peut valider que votre tag est une Integer
correcte. Donc, si vous voulez mettre une Integer
dans une balise via XML, c'est probablement la meilleure route. Inconvénient, puisqu'il utilise parseInt
, cela prend probablement un peu plus de temps que de l'avoir stocké comme un entier tout le temps.
J'ai utilisé ce qui suit pour configurer la balise au format XML et la manipuler plus tard dans le code:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="item_tag">1</string>
</resources>
<!-- TextView with Tag -->
<TextView
Android:id="@+id/item_with_tag"
Android:tag="@string/item_tag"/>
// retrieve the tag
int itemTag = Integer.valueOf((String) textView.getTag()); // itemTag == 1
Fournissez une balise pour cette vue contenant une chaîne, à récupérer ultérieurement avec View.getTag()
ou à rechercher avec View.findViewWithTag()
.
Doit être une valeur de chaîne, en utilisant '\\;'
pour échapper des caractères tels que '\\n'
ou '\\uxxxx'
pour un caractère unicode.
Pour plus d'informations, allez sur Android: tag