I have simple layout, but I can only set string tag. How to set integer tag?
I used the following to setup the tag in xml and handle it later in 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
In xml you can only set String. But in code you can use View.setTag(int value);
because it takes Object. To read a value you need to cast it to Integer int value = (Integer)view.getTag();
From the author's edit I attempted to use @integer/int2
to set the tag as an integer, but it still seems that getTag()
is returning the tag as a String
(at least in Jellybean). Integer.parseInt(String)
can convert a String
to an Integer
and @integer/int2
can validate that your tag is a proper Integer
. So if you want to put an Integer
in a tag through XML that is probably the best route. Downside, since it uses parseInt
it likely takes a little more time than having it stored as a int the whole time.
Supply a tag for this view containing a String, to be retrieved later with View.getTag()
or searched for with View.findViewWithTag()
.
Must be a string value, using '\\;'
to escape characters such as '\\n'
or '\\uxxxx'
for a unicode character.
For more information go to android:tag