如何向资源ID添加计数

时间:2015-10-25 12:49:45

标签: java android

我想知道我想要的是否可能。

尝试Android的一些编码,但我有一点问题,我希望有人可以帮助我。

我有

ImageView img1 = (ImageView) findViewById(R.id.circleselect1);

现在需要的是我的资源ID末尾的Integer增加了一个

ImageView img1 = (ImageView) findViewById(R.id.circleselect+integer);

我知道这不起作用,但有没有办法帮助我想要的东西?

3 个答案:

答案 0 :(得分:3)

我看到了您的评论I have a counter, and i have 4 R.id.circleselect's like R.id.circleselect1, R.id.circleselect2, R.id.circleselect3. R.id.circleselect4 i want to get the right source if the counter hits the next int,您要求的解决方案是个坏主意。

而是试试这个。创建一个您想要的ID数组,然后根据需要使用它们。

int[] array = new int[]{R.id.circleselect1,R.id.circleselect2,R.id.circleselect3,R.id.circleselect4};

答案 1 :(得分:0)

R类中显示的ID(更确切地说,id内的R类)中的ID只是静态字段。

您可以使用

动态访问它们
R.id.class.getDeclaredField("circleselect" + i).getInt(null);

其中i是名称末尾的整数。

不建议这样做,因为这是非OOP,如果该字段不存在则会中断。

答案 2 :(得分:0)

这样的东西?

String circle = "circleselect"  + integer; // or integer.toString()
int resID = getResources().getIdentifier(circle, "id", getPackageName());
ImageView img = (ImageView) findViewById(resID);