我有一个让我发疯的问题.
我的屏幕上有一大堆按钮(10或多或少),在TableRow中.
我需要访问它们,并且我计划通过循环执行.
访问一个,很容易,添加这个:
boton7 = (Button) findViewById (R.id.Btn7)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果你可以动态设置id字符串(R.id.Btn7)放入一个可以获取按钮,例如,更改颜色....这样的事情:
for (int i = 0; i <10; i + +) {
Button eachBoton= (Button) findViewById (R.id.Btn + i);
eachBoton. setBackgroundColor (Color.Red);
}
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用......我的问题是,是否有人知道如何安装链条
R.id.Btn + i
Run Code Online (Sandbox Code Playgroud)
上班.
非常感谢.
Ale*_*min 14
您可以使用Ressources::getIdentifier()获取给定资源名称的资源标识符:
int ressourceId = getResources().getIdentifier(
"Btn"+i,
"id",
this.getContext().getPackageName());
Button button = (Button) findViewById(ressourceId);
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用所需的所有ID准备一个数组,并访问该数组的元素.这更有效:
private final int[] btns = {R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4, ...}
...
Button button = (Button) findViewById(btns[i]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5918 次 |
| 最近记录: |