Динамическое добавление и удаление строк таблицы - Android - PullRequest
8 голосов
/ 10 сентября 2009

Я пытаюсь динамически добавлять и удалять строки из TableLayout.

Макет определен в XML-файле.

Я могу успешно удалить строку, но при вызове соответствующей команды addView ничего не происходит.

table = (TableLayout)findViewById(R.id.table);
row = (TableRow)findViewById(R.id.row);

table.removeView(row);

table.addView(row);

В результате удаляется строка, но не добавляется снова.

Редактировать: Оказывается, оно добавлялось, если в конце концов, просто внизу экрана, а не в том же месте, в котором оно было удалено.

Я могу добавить его в правильную позицию, указав индекс:

table.addView(row,4); // 4 happens to the the row

но я не могу понять, как определить индекс строки, кажется, нет способа для достижения этой цели. Кто-нибудь знает, как это сделать? (т. е. если бы я не знал, что индекс равен 4, как я могу это выяснить)

Редактировать: включен XML. это только рассматриваемая строка, выше и ниже есть другие строки

<TableRow android:id="@+id/row">

        <TextView android:id="@+id/field1"
            android:text="testing"
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:textStyle="bold"
            android:textSize="18dip"
        />


        <TextView android:id="@+id/field2"
            android:padding="3dip"
            android:text="test"
            android:textSize="18dip"
            android:gravity="right"
        />



    </TableRow>

Ответы [ 2 ]

1 голос
/ 08 августа 2011
public int indexOfChild (View child) 

public View getChildAt (int index) 

Оба метода предоставлены TableLayout. ; -)

1 голос
/ 11 сентября 2009

Используйте hierarchyviewer (в каталоге SDK tools/), чтобы определить, действительно ли строка не добавляется или добавляется, но некоторые параметры макета испорчены и поэтому не отображаются на экране. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...