我想问很多关于整个 id 系统如何在 android 中工作的问题。我查阅了 View 文档,但描述太浅了,不符合我的口味。
有没有一种模式,IDE(Eclipse/Netbeans)在我使用时如何生成 id
android:id="@+id/..."
?还是完全随机的?如果我以编程方式设置 id,那么 Context 类
findViewById()
函数会找到它吗?如果上一个问题的答案是肯定的,那么如果我想创建大量视图,但我希望它们具有不同的 id 以供以后识别,那么哪个更好用?(要回答这个问题,知道前两个的答案真的很有用)
例如在最大可能范围内生成随机 id:
Random random = new Random(); for(int i=0; i<100; i++) { View view = new View(someContext); view.setId(random.nextInt(Integer.MAX_VALUE)); }
或者按某种顺序设置 id,例如:
final int addToId = 5670; for(int i=0; i<100; i++) { View view = new View(someContext); view.setId(i+addToId); }
- 我还想知道,当您使用 LayoutInflater 例如为
ListView
列表中的每个项目使用预定义的 xml 布局填充时会发生什么。然后,您可以getView()
通过findViewById()
. 所以我假设,您的列表项中所有相同的视图都具有相同的 ID。如果是这样,那么使用该tag
属性来区分膨胀布局中的项目是一个好习惯吗?
对这些问题的任何明确解释将不胜感激!