我知道基本的不同在于 setId()
以 int
作为参数,而 setTag()
以 Object
为参数。我正在询问更多关于实用建议的信息。
当我以编程方式生成更多相同的元素时,我通过 setId(++counter)
设置它们的 ID,这样我就可以知道哪个元素发送了 onClick
事件。我可以通过 setTag(++counter)
做同样的事情,但我已经习惯了以前的方法。
那么我什么时候应该使用 setTag()
并且在使用 setId()
时我犯了一个错误?
我想如果我的方法是正确的,那么当我想传递额外的数据时我会使用 setTag()
,但我会先让你对这个问题发表评论。
最佳答案
你的猜测是对的。当您只想要一种方法来识别代码中的特定 setId()
和 View
时,您应该使用 setTag
当您想要与该 View
一起传递附加信息(附加数据可能会或可能不会唯一标识该 View
)。
您可以只使用 setTag
方法并传递一个包含 id
+ 附加数据的复合对象,但在这种情况下,您需要构建一个特殊对象,而不是更简单的方法,即调用有问题的两个方法。
编辑:
View
类的文档还包含有关这两种方法的有值(value)的信息:
ID
标签
关于android - set/getId() 和 set/getTag() 的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10444760/