我制作一个计算器只是为了练习,但我发现按钮太多了。 我将它们的 id 命名为“button+row+col” 例如)行=5,列=4 -> id=button54
由于我必须攻击每个按钮的监听器,因此我发现手动执行此操作非常烦人。就像,
findViewById(R.id.button11).setOnClickListener(this);
findViewById(R.id.button12).setOnClickListener(this);
...
findViewById(R.id.button95).setOnClickListener(this);
我可以这样做
for(int i=1; i<=9; i++){
for(int j=1; j<=5; j++){
findViewById(R.id."button"+Integer.toString(i) + Integer.toString(j)).setOnClickListener(this);
}
}
或其他使这变得更容易的方法。
最佳答案
由于您正在使用很多按钮,我建议您将它们全部放入一个 ViewGroup 中(例如 LinearLayout、FrameLayout 或类似的东西),然后迭代该 ViewGroup 的每个 View ,检查然后为其实例分配点击监听器。
这是一些伪代码,因为我忘记了 Java 是如何工作的
ViewGroup viewGroup = findViewById(R.id.yourViewGroupName);
for each child in viewGroup.getChildren {
if child is of type Button {
child.setOnClickListener(this);
}
}
关于java - android studio(java) 使用字符串查找 View id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57141441/