如何查看在ArrayList中单击了哪个Button

时间:2013-05-27 12:37:00

标签: android button arraylist onclick onclicklistener

我创建了一个带按钮的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

}

也许我应该说我是编程新手。

5 个答案:

答案 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;
    }

}