1

来自 Actionscript 3,Java 在这里似乎有点不同:

拥有三个Button,Button btn0;按钮 btn1; 按钮 btn2; 我想遍历它们设置 onClickListeners() 像这样:

for (int i=0; i < 4; i++) {    
    this["btn"+i].setOnClickListener(this);
}

这甚至可能吗?

4

1 回答 1

3

基本上,您是在询问 Java 中可用的数据结构,让我们看看一些选项。如果您使用 a ,则可以在您的代码中重现该行为Map

// instantiate the map
Map<String, Button> map = new HashMap<String, Button>();
// fill the map
map.put("btn0", new Button());
// later on, retrieve the button given its name
map.get("btn" + i).setOnClickListener(this);

或者,您可以简单地使用索引作为标识符,在这种情况下,最好使用 a List

// instantiate the list
List<Button> list = new ArrayList<Button>();
// fill the list
list.add(new Button());
// later on, retrieve the button given its index
list.get(i).setOnClickListener(this);

或者,如果按钮的数量是固定的并且事先已知,请使用数组:

// instantiate the array
Button[] array = new Button[3];
// fill the array
array[0] = new Button();
// later on, retrieve the button given its index
array[i].setOnClickListener(this);
于 2013-11-06T17:17:03.213 回答