Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何生成唯一ID';android中的布局是什么?_Android_Android Layout - Fatal编程技术网

如何生成唯一ID';android中的布局是什么?

如何生成唯一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

我有一个应用程序,可以根据来自数据库的信息以编程方式创建控件

在应用程序中,我需要引用一个动态创建的布局,以便为其分配一个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));

        ....
    }
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分配给控件,