我知道如何通过调用setID()
来动态识别ID。为了使ID具有唯一性,我曾使用ids.xml
并从预先生成的ID池中传递给setID()
ID。
问题1:有没有办法在不使用ids.xml
的情况下分配ID,因为我无法预测运行时需要多少ID?
我试图绕过问题1 中提出的第一个问题,通过动态分配每个基于其标签的哈希值的ID(每个标签都是唯一的),但是没有办法保证该ID是不会与R.java
中生成的ID自动发生冲突。
问题1.1:如何解决ID命名冲突?
问题2:假设我拥有动态分配和生成的ID值。由于上述ID未显示在R.id
中,findViewById()
将不适用于检索视图。因此,当ID已知时,如何检索视图?
答案2:只有在onCreate()
返回控件(已终止)后,您才能通过相应的ID检索视图。
答案 0 :(得分:8)
答案 1 :(得分:1)
有没有办法在不使用ids.xml的情况下分配ID,因为我 无法预测我在运行时需要多少ID?
这可以保证每个视图都有唯一的ID
for(int i =0 ; i < yourIDcount ; i++){
yourView.setId(i);
}
如何在知道ID时检索视图?
View.findViewById(yourView.getId());
可用于获取您的视图ID,因为每个视图都有唯一ID,您可以返回您想要的视图。
动态词是指在运行时创建的,因为您在onCreate中指定了id,它被指定为视图ID,因为只有在创建活动时才调用onCreate,您可以确保您指定的ID保持不变。 ..