如何生成唯一ID';android中的布局是什么?
我有一个应用程序,可以根据来自数据库的信息以编程方式创建控件 在应用程序中,我需要引用一个动态创建的布局,以便为其分配一个ID 目前,我有:如何生成唯一ID';android中的布局是什么?,android,android-layout,Android,Android Layout,我有一个应用程序,可以根据来自数据库的信息以编程方式创建控件 在应用程序中,我需要引用一个动态创建的布局,以便为其分配一个ID 目前,我有: final Random random = new Random(); for (int i = 0; i < count; i++) { TdcItem item = items[i]; int id = item.getID(); final int layoutId = rand
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));
....
}
final Random Random=new Random();
for(int i=0;i
其中id变量是来自数据库的id,这在数据库表中当然是唯一的
问题是,我还创建了来自另一个表的按钮,因此,从该表的角度来看,ID是唯一的,但是,其中一些在活动上下文中不是唯一的
这导致当我使用findViewById试图查找布局时,会找到一个按钮,引发无效的强制转换异常
有没有办法为布局创建唯一的ID
谢谢
Jaime将视图对象的内存地址转换为
int
,并将其设置为视图的id。它在活动上下文中始终是唯一的
for (int i = 0; i < count; i++) {
TdcItem item = items[i];
int id = Integer.parseInt(""+item, 16);
item.setId(id);
....
}
for(int i=0;i
如果您使用的是API 17或更高版本,Android API在View类中提供了一个方法,可以为您执行此操作:
View.generateViewId();
根据报告:
生成一个适合在setId(int)中使用的值。此值不会与aapt在构建时为R.ID生成的ID值冲突
未编译:找不到适合parseInt(TdcItem,int)的方法。方法Integer.parseInt(String.int)不适用。代码只是上述概念的证明。你也可以自己解决这些问题。无论如何,请尝试修改后的代码。您可以为按钮或文本视图创建一个ArrayList或唯一id数组,并从该数组列表中将id分配给控件,