我想知道我想要的是否可能。
尝试Android的一些编码,但我有一点问题,我希望有人可以帮助我。
我有
ImageView img1 = (ImageView) findViewById(R.id.circleselect1);
现在需要的是我的资源ID末尾的Integer增加了一个
像
ImageView img1 = (ImageView) findViewById(R.id.circleselect+integer);
我知道这不起作用,但有没有办法帮助我想要的东西?
答案 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);