2015-03-20 1 views
-2

Я создал кнопки в моем макете xml, каждый получает идентификатор: button1, button2 и т. Д. Я хочу в своей основной деятельности создать массив кнопок и цикл для всех кнопок и связать их с идентификаторами.в общем случае соответствует кнопке с идентификатором

ImageButton btn = (ImageButton)this.findViewById (R.id.imageButton1); 
ImageButton btn2 = (ImageButton)this.findViewById (R.id.imageButton2); 

вместо того, чтобы делать это я хочу что-то вроде этого:

ImageButton btn[]; 
for(int i=0;i<numOfButtons;i++) 
{ 
    btn[i] = (ImageButton)this.findViewById (R.id.("imageButton"+(i+1))); 
} 
+0

много раз спрашивали ... пожалуйста, сделать некоторые исследования, прежде чем спрашивая – Selvin

+0

вы можете ссылаться на меня на вопрос - я не знаю, что искать, чтобы его обмануть – user3061943

+0

нет ... SO - это не поисковая машина для людей ... используйте google – Selvin

ответ

3
ImageButton btn[];  
int[] btnIDs = new int[] {R.id.btn1, R.id.btn2, R.id.btn3,R.id.btn4, ... } 
     for(int i=0; i<btnIDs.length; i++) { 
      btn[i] = (ImageButton) findViewById(btnIDs[i]); 
    } 
-1

Вы не можете взять идентификаторами в общем, как это.

Но вместо этого вы можете взять кнопки в цикле, если раскладка выглядит следующим образом:

<layout> 
    <button> 
    <button> 
    <button> 
    ... 
    <button> 
</layout> 

затем,

for (int i = 0; i < layout.getChildCount; i++) 
    button[i] = layout.getChild(i); 
+0

* Вы не можете использовать общий идентификатор id. * да, вы можете ... также есть вероятность, что в макете есть не только кнопки – Selvin

+0

«Также есть вероятность, что в макете есть не только кнопки« », я написал пример макета из-за этого. Он содержит только кнопки, конечно. «Вы не можете взять идентификатор в целом так». вы можете поделиться примером – Onur

+0

Следуйте по ссылке: http://stackoverflow.com/questions/5448658/how-can-i-loop-over-several-button-views Я думаю, это поможет вам –