У меня есть 20 кнопок в массиве, и мне нужно связать каждую кнопку со своим идентификатором ресурса.
У меня очень мало опыта в Java и еще меньше в Android.
Что я делаю сейчас, так это:
botonColor[0] = findViewById(R.id.newlist_btn_01);
botonColor[1] = findViewById(R.id.newlist_btn_02);
botonColor[2] = findViewById(R.id.newlist_btn_03);
botonColor[3] = findViewById(R.id.newlist_btn_04);
botonColor[4] = findViewById(R.id.newlist_btn_05);
botonColor[5] = findViewById(R.id.newlist_btn_06);
botonColor[6] = findViewById(R.id.newlist_btn_07);
botonColor[7] = findViewById(R.id.newlist_btn_08);
botonColor[8] = findViewById(R.id.newlist_btn_09);
botonColor[9] = findViewById(R.id.newlist_btn_10);
botonColor[10] = findViewById(R.id.newlist_btn_11);
botonColor[11] = findViewById(R.id.newlist_btn_12);
botonColor[12] = findViewById(R.id.newlist_btn_13);
botonColor[13] = findViewById(R.id.newlist_btn_14);
botonColor[14] = findViewById(R.id.newlist_btn_15);
botonColor[15] = findViewById(R.id.newlist_btn_16);
botonColor[16] = findViewById(R.id.newlist_btn_17);
botonColor[17] = findViewById(R.id.newlist_btn_18);
botonColor[18] = findViewById(R.id.newlist_btn_19);
botonColor[19] = findViewById(R.id.newlist_btn_20);
Моей первой идеей было заменить текстовую строку, соответствующую идентификатору, ее числовым эквивалентом, но числа не следуют определенному порядку, и я не знаю, где изменить эти числовые литералы на другие, следующие за последовательностью.
Может ли кто-нибудь помочь мне сделать это более правильно?
Большое спасибо и извините за мой английский.
Привет, я чувствую, что вы можете сделать это по-другому, поэтому, пожалуйста, предоставьте код, чтобы мы могли помочь вам и решить, как это можно сделать наилучшим образом.
я обычно делаю так
int ids[] = { R.id.button1, R.id.button2, R.id.Button3 };
List<Button> buttons = new ArrayList<>();
for(int id : ids) {
buttons.add(findViewById(id));
}
Любая дополнительная конфигурация, которую вы хотите, например, настройка обработчиков кликов, может быть включена в цикл. Затем вы можете сделать button.get(index), чтобы получить индекс кнопки.
Спасибо, это быстрее и элегантнее моего решения.
Вы можете поместить все кнопки в контейнер и перебирать контейнер для его дочерних элементов.