У меня проблема с обработкой динамически созданных кнопок на Android. Я создаю кнопки N, и я должен сделать тот же метод, когда нажата кнопка, но я должен знать, какую кнопку нажать.Динамическое создание кнопок и настройка onClickListener
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);
Cucurrently Я добавляю ID для каждой кнопки, и я использую метод ниже, чтобы увидеть, какая кнопка была нажата. (строка 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? какие-либо предложения?
и код будет выглядеть ..... – Ante 2010-12-19 11:19:34
да, это хорошо, если вы разрабатываете рабочий стол приложение. Но мы говорим о мобильном устройстве, которое меньше памяти. Таким образом, вместо использования только одного OnClickListener вы создаете 8 из них. это много. Несмотря на то, что это уродливо, я бы предпочел первый подход и попытался сделать выбор в цикле, чтобы сделать лучше. – 2010-12-20 16:55:51
@Omer Вы уверены, что Android не оптимизирует это самостоятельно при компиляции? – blindstuff 2010-12-20 19:59:29