我知道基本的不同在于 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/

10-12 02:37