2011-12-06 26 views
3

我正在创建一个自定义View以包含在类库中。我需要为动态创建的子视图添加多个标记(在代码中,而不是xml),所以这需要我添加使用:View.setTag(int key,Object tag)View.setTag - 需要多个键:resourceIDs

关键需要是项目R文件中定义的ID,但由于我的所有视图都是动态创建的,并且代码正在进入一个库以供其他项目使用,所以我没有硬编码的资源ID在手边使用。有什么方法可以编程方式发现几个定义的资源ID,或者用编程方式定义一些?或者,我是否全力以赴?

感谢

回答

3

请记住,您可以添加任何对象作为标记。如果要添加到视图中的数据是动态的,那么最简单的方法就是将View作为标记添加到视图中。然后将所有的键/值对添加到该Hashtable中。另一方面,(处理标签的代码),你可以通过将视图的标签转换回Hashtable并遍历Hashtable.keys()来遍历这些值。

+0

感谢回复kabuko和Alex。我希望不必使用另一种数据结构,但我想它解决了我的问题,并且增加了可以忽略的复杂性。给Alex回答,因为他先回答,两个答案都是一样的...... – noobler

1

如果你读the documentation,它说:

标签也可以用来存储在一个视图中的数据,而不诉诸另一种数据结构。

暗示你可以做的事情是使用另一个数据结构。您可能希望使用ViewHolder模式查看 ,并在标记中存储该实例。