2012-02-14 65 views
20

我有简单的布局,但我只能设置字符串标记。如何设置整数标记?如何在xml布局文件中将整型标签设置为一个小部件?

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:tag="1" 
    android:src="@drawable/image" /> 

UPDATE

我发现了如何设置整数标签XML布局。我们需要在任何xml资源文件中指定一个整型变量。这应该看起来像:

RES /价值/ value.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
<integer name="int1">15</integer> 
<integer name="int2">1</integer> 
</resources> 

而现在我们可以自由地使用 “@整数/ INT1” 或 “@整数/ INT2” 作为我们的XML标签窗口小部件,例如:

<ImageView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:tag="@integer/int2" 
android:src="@drawable/image" /> 

然而,在我的情况下,我优选设定标签编程:)

+1

你能解释一下多一点有关你的用意何在? – Ajay 2012-02-14 10:18:08

+0

目前,当我使用View.getTag()时,我得到了字符串“1”。我应该在xml布局中指定什么来获取Integer 1而不是String“1”? – 2012-02-14 10:39:23

+0

我可以将id属性添加到ImageView ,在代码中获取并使用View.setTag(1),但我想知道如何在xml布局文件中设置整数标记。 – 2012-02-14 10:41:42

回答

0

供应用于容纳String此视图中的代码,将与View.getTag()以后提取或搜索与View.findViewWithTag()

必须是字符串值,使用​​来转义字符,例如'\\n''\\uxxxx'以获取unicode字符。

欲了解更多信息,请访问android:tag

15

在你才可以设置字符串XML。但在代码中,您可以使用View.setTag(int value);,因为它需要Object。要了解你需要将其转换为整数int value = (Integer)view.getTag();

+0

这对我有效,谢谢! – 2015-05-07 21:25:53

+0

这可以在循环中使用(遍历子对象)以生成问题中预期的结果,谢谢这对我有用。 – SadeepDarshana 2016-01-08 08:04:07

+0

整数。valueOf(tag)应该能够读取两者都没有问题,允许你设置一个XML值的字符串值,然后从那里写入整数,而不用担心ClassCastExceptions – 2016-07-06 19:50:30

4

从笔者的编辑我试图使用@integer/int2设置标记为整数的值,但它仍然似乎getTag()正在恢复标记为String(至少在果冻豆)。 Integer.parseInt(String)可以将String转换为Integer@integer/int2可以验证您的标记是否合适Integer。所以如果你想通过XML来将Integer放入标签中,那么这可能是最好的路线。不利的一面是,因为它使用parseInt,它可能需要比整个时间存储为int更多的时间。

+0

不要担心parseInt()的性能,它比第n个好几倍充气布局:) – comeGetSome 2013-12-27 11:13:35

+0

@comeGetSome我不担心,只是提及。 – 2013-12-29 20:00:40

2

我用XML以下设置标识,在后面的代码处理:

<?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 
相关问题