Я 50 Buttons
закодированных как это:Перебор многочисленных переменных Button
button_list.set(0,(Button) findViewById(R.id.button0));
button_list.set(1,(Button) findViewById(R.id.button1));
button_list.set(2,(Button) findViewById(R.id.button2));
button_list.set(3,(Button) findViewById(R.id.button3));
button_list.set(4,(Button) findViewById(R.id.button4));
button_list.set(5,(Button) findViewById(R.id.button5));
button_list.set(6,(Button) findViewById(R.id.button6));
button_list.set(7,(Button) findViewById(R.id.button7));
button_list.set(8,(Button) findViewById(R.id.button8));
button_list.set(9,(Button) findViewById(R.id.button9));
button_list.set(10,(Button) findViewById(R.id.button10));
button_list.set(11,(Button) findViewById(R.id.button11));
button_list.set(12,(Button) findViewById(R.id.button12));
button_list.set(13,(Button) findViewById(R.id.button13));
button_list.set(14,(Button) findViewById(R.id.button14));
button_list.set(15,(Button) findViewById(R.id.button15));
.
.
.
Как я могу положить все это в цикле?
Когда я запускаю код ниже, я получаю NullPointerExceptions
, я думаю, значение Buttons
не распознается при попытке использовать findViewById
. Кто-нибудь знает, что не так со следующим кодом и как я могу это исправить?
Button[] bttn = new Button[50];
String ids[] = new String[50];
for(int i=0; i<50; i++)
{
ids[i] = "button" + Integer.toString(i);
}
for(int i=0; i<50; i++)
{
int resID = getResources().getIdentifier(ids[i], "id", "your.package.name");
bttn[i] = (Button) findViewById(resID);
}
for(int i=0; i<50; i++)
{
button_list.set(i, bttn[i]);
}
Вы заменили '' your.package.name'' фактическое имя пакета, которое используете, как указано в манифесте? (Еще лучше, замените его 'getPackageName()' [или 'getContext(). GetPackageName()', если этот код не находится в 'Деятельности'.) –
Можете ли вы дополнительно объяснить, чего вы хотите достичь? Я не могу думать о ситуации, где мне понадобится 50 независимых кнопок в списке. Спасибо. – JacksOnF1re