Android - 动态分配和检索 ID

标签 android android-layout android-widget

我知道如何通过调用 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() 将不适用于检索 View 。因此,当 ID 已知时,如何检索 View ?

答案 2:只有在 onCreate() 返回控制(终止)后,您才能通过相应的 ID 检索 View 。

最佳答案

从 API 级别 17 开始,您可以通过调用获取新 ID

View.generateViewId()

Details here.

关于Android - 动态分配和检索 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10261190/

相关文章:

android - 在 WebView 中播放 youtube 视频

android - 以编程方式更改边距无法按预期工作

android - 具有协调器布局的 ViewPager

android - imeOptions ="actionSend"在 Material 设计中不起作用

java - 为什么我的数据报包响应不完整?

android - Android 应用程序中带标签文本的实现概述文本字段输入

android - 主题为 Holo Light 的 DatePickerDialog?

android - 阻止 ' Enter key ' 触发 TextWatcher

android - 将 Intent 从 BroadcastReceiver 类发送到当前正在运行的 Activity

Java - 将字符串转换为字符串数组