我正在开发一个具有固定和动态布局部分的活动。动态部分(因此创建的小部件的数量和类型)是以这种方式基于数据库值的:对于每个数据库行,我将有一组小部件。每个组的组件依赖于该数据库行的对象类型(由其中一列确定)。
为了保存/恢复实例状态,所有小部件都需要有ID。我希望确保我自己的ID不会与生成的R类中的ID发生冲突。
为了在应用程序中更好地处理(找到哪个小部件映射到哪个数据对象中的字段),ID = row * 100 +字段索引这样的编号方案将是有帮助的。Fieldindex并不完全是一个colum数。每一种对象类型都应该有自己的野场。
由于生成的R中的ID值似乎没有连续的数字,所以我不能仅仅在R中预定义一个ID池并使用这些ID,而不需要额外的映射。反对预定义池的第二个原因是:大量的野场会导致大量的ID池。第三,ID池的大小将限制可以显示的行数。
是否有安全的编号范围可以用于我自己的布局组件的ID?查看gen/文件夹中的R.java,我的印象是生成的in都大于0x7f000000。这有保证吗?如果是,从0x00000000到0x7f000000之间的范围是免费使用的,还是为android的内部目的保留的?
发布于 2012-01-24 03:58:56
为什么你想要避免相同的身份?唯一必要的是:An ID need not be unique throughout the entire tree, but it should be unique within the part of the tree you are searching。所以,你可以用你的公式
ID =行* 100 +字段索引
我会很好的工作,即使它不是独一无二的项目。
https://stackoverflow.com/questions/8980006
复制相似问题