2016-06-10 3 views
0

У меня есть ряд строк в моем TableLayout, и я хочу получить доступ к представлениям кнопок. Пример следующим образом:ребенок дочерних элементов

<TableLayout> 
    <TableRow> 
     <Button /> 
     <Button /> 
    </TableRow> 
    <TableRow> 
     <Button /> 
     <Button /> 
    </TableRow> 
</TableLayout> 

Из макета таблицы я хотел бы прокрутить кнопки.

TableLayout layout=(TableLayout) findViewById(R.id.Layout); 
layout.getChildCount; 

Вышеуказанные номера возвращают только число табличных видов.

+0

Вам потребуется некоторое рекурсию для этого –

+1

Почему вы не присвоить атрибут ID для каждой кнопки и доступ к нему через tableLayout.findViewById (R.id.yourButtonId)? – Talha

+0

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

ответ

3

Попробуйте, как это, может быть поможет вам

TableLayout layout = (TableLayout) findViewById(R.id.Table_ID); 
for (int i = 0; i < layout.getChildCount(); i++) { 
View child = layout.getChildAt(i); 

if (child instanceof TableRow) { 
    TableRow row = (TableRow) child; 

    for (int x = 0; x < row.getChildCount(); x++) { 
     View view = row.getChildAt(x);//Here you get Your Button View 

    } 
} 
} 
+0

@the_big_blackbox always wlc –

0

Попробуйте это:

TableLayout layout=(TableLayout) findViewById(R.id.Layout); 
for(int i=0;i<layout.getChildCount();i++) { 
    if (layout.getChildAt(i) instanceof TableRow) { 
     TableRow tableRow = (TableRow) layout.getChildAt(i); 
     for(int j=0;j<tableRow.getChildCount();j++) { 
      if (tableRow.getChildAt(j) instanceof Button) { 
       Button button = (Button) tableRow.getChildAt(j); 
       //your button is here 
      } 
     } 
    } 
} 
Смежные вопросы