java - R.id.ImageButton 的值是多少?

标签 java android loops imagebutton

我有 16 个图像按钮,因此我创建了一个图像按钮数组。我想用 for 循环初始化它们,我不想一个一个地做,虽然我不知道这是否可能。 对于一个图像按钮,它将是这样的:

imgbtn[0] = (ImageButton)findViewById(R.id.imgButton1);

我看到 R.id.smth 部分是一个整数。它是否在某处说明了 imgButtons 的整数值从哪里开始?这样我就可以这样:

int value = R.id.imgButton1;
for(int i = 0; i < imgbtn.length; i++)
{
     imgbtn[i] = (ImageButton)findViewById(value);
     value++;   //or something along these lines
}

最佳答案

ID 不是递增分配的,实际上是非常随机的,因此不可能猜测资源 ID 是什么。您需要的是通过 getIdentifier() 方法实际动态获取 id

int value = 1;
for(int i = 0; i < imgbtn.length; i++){
    int resId = getResources().getIdentifier("imgButton" + value, "id", this.getPackageName());
    imgbtn[0] = (ImageButton) findViewById(resId);
    value++;
}

getResources().getIdentifier(tag, type, package) 将返回存储在您的图像资源 (R) 中的实际 int 值。您可以使用它来动态查找您的 View 。

关于java - R.id.ImageButton 的值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435141/

相关文章:

java - 将映射解析为对象的优雅方法是什么?

java - 如何将最初的第一个用户添加到网络应用程序用户列表中(该用户随后会添加其他用户)?

java - 等待多个 future 的回调

android - 从应用程序读取存储卡数据

javascript - 访问数组中的所有变量

javascript - Chrome 错误 "chrome runned out of memory"

java - 在 map 中存储带有日期的对象组

android - 为什么使用 Graph API 获取 FB 头像需要访问 token ?

java - 升级 android studio 破坏了我的 flutter build (macOS)

c++ - for循环中的条件不执行