选择多个 kotlin 的按钮并在 findViewById() 中使用变量 - android studio

Fua*_*yev 2 android element kotlin android-studio

我想用 9 个按钮做动作。反正有没有一次用 9 个按钮做动作,而不是一个一个。如果我可以向 findViewById() 添加变量,我会解决问题。例如,我想一次选择 9 个按钮(带for循环),如下所示

for(i in 1..9){
   findViewById(R.id.button+i).text="New Text"
}
Run Code Online (Sandbox Code Playgroud)

这种方法行不通,请提出最佳方法。

我想在 javascript 中是这样的: document.getElementById("button"+i)

小智 6

在您的活动中声明:

var buttons: ArrayList<Button> = arrayListOf()
Run Code Online (Sandbox Code Playgroud)

在 onCreate() 中:

    for (i in 1..100) {
        buttons.add(findViewById<Button>(resources.getIdentifier("button" + i, "id", this.getPackageName())))
    }
Run Code Online (Sandbox Code Playgroud)

现在您将所有按钮都列在一个列表中。

如果要更改按钮的状态,请说全部禁用:

buttons.forEach { it.isEnabled = false }
Run Code Online (Sandbox Code Playgroud)