我创建了一个带按钮的ArrayList,并在所有这些上设置了OnClickListener。
for (int i = 0; i < 27; i++) {
myButtons.add(new Button(this));
myButtons.get(i).setOnClickListener(this);
myButtons.get(i).setLayoutParams(params);
}
但是我怎样才能在onClick方法中看到哪个Button被点击了?
public void onClick(View v) {
// TODO Auto-generated method stub
}
也许我应该说我是编程新手。
答案 0 :(得分:1)
您可以为添加的所有按钮设置标记,在onClick中,您可以执行某些操作v.getTag()来检查单击了哪个按钮。
答案 1 :(得分:1)
您可以使用setTag()/getTag()
myButtons.get(i).setTag(id);
listener = new OnClickListener() {
@Override
public void onClick(View v) {
doAction(v.getTag());
}
};
答案 2 :(得分:1)
在将Button添加到列表之前,请设置如下标记:
Button button = new Button(this);
button.setOnClickListener(this);
button.setLayoutParams(params);
button.setTag(i);
然后可以使用以下命令检索索引:
int index = (Integer) button.getTag();
答案 3 :(得分:0)
为每个按钮ID设置,例如:
...
Button button= new Button(this);
temp.sedId(i);
temp.setOnClickListener(this);
myButtons.add(button);
...
然后在onClick
对点击按钮作出反应,例如:
public void onClick(View v) {
switch(v.getId()) {
...
case 17:
//Some action
break;
}
}
答案 4 :(得分:0)
在您的活动中实施接口OnClickListener
。使用button.setId(id)
为每个按钮设置ID。请尝试以下代码
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
break;
case R.id.button2:
break;
case R.id.button3:
break;
default:
break;
}
}