【发布时间】:2016-01-20 16:43:22
【问题描述】:
我有一个应用程序可以根据来自数据库的信息以编程方式创建控件。
在应用程序中我需要引用一个动态创建的布局,因此我需要为其分配一个 ID。
目前,我有:
final Random random = new Random();
for (int i = 0; i < count; i++) {
TdcItem item = items[i];
int id = item.getID();
final int layoutId = random.nextInt(id * (id + 1));
....
}
其中 id 变量是来自数据库的 ID,在数据库表中当然是唯一的。
问题是我也在创建来自另一个表的按钮,因此,从该表的角度来看,ID 是唯一的,但是,其中一些在活动上下文中并不是唯一的。
这导致当我使用 findViewById 尝试查找布局时,却找到了一个按钮,从而引发了无效的强制转换异常。
有没有办法为布局创建唯一 ID?
谢谢 詹姆
【问题讨论】:
-
您可以为按钮或文本视图创建一个 ArrayList 或唯一 id 数组,并从该数组列表中将 id 分配给控件,