我知道不同的基础是setId()
将int
作为参数,而setTag()
需要Object
。我要求更多关于实用建议。
当我以编程方式生成更多相同的元素时,我通过setId(++counter)
设置了ID,我可以知道哪个元素发送了onClick
事件。我可以通过setTag(++counter)
做同样的事情,但我习惯了以前的方法。
那么我什么时候应该使用setTag()
我在使用setId()
时犯了错误?
我想如果我的方式是正确的,那么当我想传递其他数据时我会使用setTag()
,但我会先给你留言。
答案 0 :(得分:4)
你的猜测是正确的。如果您只想在代码中识别特定setId()
,则应使用View
,并在想要传递其他信息setTag
时View
使用View
其他数据可能会或可能不会唯一标识setTag
)。
您只能使用id
方法并传递包含{{1}} +附加数据的复合对象,但在这种情况下,您需要构建一个特殊对象而不是更简单的方法,调用两个方法问题
修改:
View
类的文档还包含有关这两种方法的有价值信息:
<强>的ID 强>
视图可能具有与之关联的整数id。这些ID是 通常在布局XML文件中分配,并用于查找 视图树中的特定视图。
<强>代码
与ID不同,标签不用于标识视图。标签本质上是 可以与视图关联的额外信息。他们 最常用于存储与视图相关的数据的便利性 观点本身而不是将它们分开 结构
答案 1 :(得分:1)
ID
是(通常是唯一的)整数类型的属性,您可以将其分配给任何视图,以便将来识别它们。
TAG
是Object
类型的属性,用于分配其他数据(可能由您自己的Object),不同的Object可能带有类似的标记。
因此,如果您只是想要唯一地标识您的视图,您应该使用id(因为它是原始数据类型并且将消耗少量内存),而如果您希望您的Object也携带其他信息,请使用TAG。