我想问一下很多关于整个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);
}
ListView
列表中每个项目的预定义xml布局。然后你得到你的
getView()
findViewById()
函数中的子视图。所以我
假设您的所有列表中的所有相同视图都具有
同样的身份。如果是这样,那么使用tag
是一个好习惯
属性来区分膨胀布局中的项目?对这些问题的任何明确解释都将受到高度赞赏!
答案 0 :(得分:1)
@ + id / ....创建一个存在于应用程序命名空间内的id值。与@android:id / ....形成对比,它位于android命名空间中。
当你在代码中设置id并将view元素添加到布局时,它将可以通过代码访问。您将无法从xml
不确定是否要使用随机生成ID?认为顺序会更好,但即便如此,随机ID的重点是什么?你怎么知道你指的是哪个观点?
绝对使用tag选项并查看使用ViewHolder模式以实现更平滑的列表滚动。如果需要访问它,可以将id添加到视图持有者类,但无论如何通过用于填充列表的数据集都可以使用它。快速搜索将为您提供大量示例。