1

ボタンで 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 メソッドで、どのボタンがクリックされたかをどのように確認できますか?

public void onClick(View v) {
    // TODO Auto-generated method stub

}

たぶん、私はプログラミングが本当に初めてだと言うべきです。

4

5 に答える 5

1

メソッドを使用して追加情報を保存できますsetTag()/getTag()

myButtons.get(i).setTag(id);

listener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        doAction(v.getTag());
    }
};
于 2013-05-27T12:39:53.663 に答える
1

Button をリストに追加する前に、次のようにタグを設定します。

Button button = new Button(this);
button.setOnClickListener(this);
button.setLayoutParams(params);
button.setTag(i);

そして、インデックスは次のように取得できます。

int index = (Integer) button.getTag();
于 2013-05-27T12:40:02.837 に答える
1

追加するすべてのボタンにタグを設定できます。onClick では、v.getTag() として何かを実行して、どのボタンがクリックされたかを確認できます。

于 2013-05-27T12:39:14.930 に答える
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;
    }

}
于 2013-05-27T12:44:38.477 に答える