英文:
how accessing similar name variables in java
问题
Sure, here's the translation of the provided content:
我有5个按钮,分别命名为btn1、btn2、btn3、btn4、btn5,还有一个整数变量numberInt。
我希望当numberInt的值变成一个数字时,对应编号的按钮变为不可见状态。
像这样:
if (numberInt == 1){
btn1.setVisibility(View.GONE);
}else if (numberInt == 2){
btn2.setVisibility(View.GONE);
是否有办法在 'btn' 关键字之后使用numberInt?因为当按钮数量较多时编写这么多的if语句很麻烦。
抱歉表达不清楚。
英文:
i have 5 button as btn1, btn2, btn3, btn4, btn5 and a integer variable as numberInt
i want when numberInt changed to a number, button with that number becomes invisible
like this:
if (number == 1){
btn1.setVisibility(View.GONE);
}else if (number == 2){
btn2.setVisibility(View.GONE);
is there any way to use numberInt end of 'btn' keyword? because is hard to write if loops when buttons is too many.
Sorry for bad explaining.
答案1
得分: 4
把所有的按钮放入一个列表中
List<Button> buttons = new ArrayList();
buttons.add(btn1);
buttons.add(btn2);
然后通过索引引用它们
buttons.get(number);
在运行时无法构建标识符,例如:
btn${number}.setVisibility(View.GONE); // 不是有效的 Java 语法
在一些脚本语言中可以做到这种操作,但在 Java 中不行。
英文:
Put all the buttons in a list
List<Button> buttons = new ArrayList();
buttons.add(btn1);
buttons.add(btn2);
then refer to them by index
buttons.get(number);
There is no way to construct an identifier at runtime e.g.
btn${number}.setVisibility(View.GONE); // not valid java
You can do that kind of thing in some scripting languages, but not in Java.
答案2
得分: 0
你的按钮都放在一个数组中,就不需要使用“If循环”。因为数组的索引是“int”类型,可以用于你的优势。
Button[] buttons = {btn0, btn1, btn2, ...};
使用以下方法来更新视图的可见性
public void setInvisibleButton(int i){
buttons[i].setVisibility(View.GONE)
}
英文:
You need not use 'If loop' if all your buttons are put in an array. Since arrays have 'int' as index that can be used to your advantage.
Button[] buttons = {btn0, btn1, btn2, ...};
use a method as below to update view's visibility
public void setInvisibleButton(int i){
buttons[i].setVisibility(View.GONE)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论