Динамическое создание кнопок и настройка onClickListener

У меня проблема с обработкой динамически создаваемых кнопок на Android. Я создаю N кнопок, и я должен делать тот же метод при нажатии кнопки, но я должен знать, какая кнопка нажата.

for (int i = 0; i < NO_BUTTONS; i++){
        Button btn = new Button(this);
        btn.setId(2000+i);

        ...

        btn.setOnClickListener((OnClickListener) this);
        buttonList.addView(btn);
        list.add(btn);

В настоящее время я добавляю идентификатор к каждой кнопке и использую метод ниже, чтобы увидеть, какая кнопка была нажата. (Строка btn.setId (2000 + i); и btn.setOnClickListener ((OnClickListener) this); ). Этот метод также реализован в деятельности.

@Override
public void onClick(View v) {
    switch (v.getId()){
        case 2000: selectButton(0);
        break;

        ...

        case 2007: selectButton(7);
        break;
    }
 }

Мне это не нравится, поэтому я спрашиваю, есть ли способ лучше? или как отправить некоторую информацию в событие onclick? есть предложения?

27
задан Abdul Rahman 24 October 2012 в 08:19
поделиться