2011-09-04 13 views
13

Tôi biết rằng điều này đã được yêu cầu trước đó, nhưng không có câu trả lời nào khác đã giúp tôi, vì vậy tôi sẽ tự hỏi mình ...Làm cách nào để xóa tất cả các hàng khỏi TableLayout?

Tôi đang cố xóa tất cả các hàng hiện có của mình khỏi TableLayout vì tôi muốn người dùng có thể cập nhật bảng động. Các đề xuất khác đã đề xuất sử dụng removeAllViews(), nghĩa vụ phải xóa tất cả các chế độ xem con, tuy nhiên điều này xóa các hàng khỏi các bảng khác của tôi trong cùng một LinearLayout (tôi có bố cục tuyến tính với nhiều bảng).

Mọi đề xuất?

Trả lời

46

Có vẻ như bạn có thể đang gọi removeAllViews() trên toàn bộ LinearLayout và không phải là số TableLayout cụ thể mà bạn muốn xóa. Kiểm tra kỹ bạn có một số điều như:

myLinearLayout.someTableView.removeAllViews()

+0

Nope, tôi chắc chắn gọi TableLayout tôi ... \t \t tl = (TableLayout) dialog.findViewById (R.id.afi_waist_table); \t \t tl.removeAllViews(); –

+0

Và đây là bố cục của tôi: http://imagebin.org/171056 –

+0

Thay đổi mã của tôi xung quanh một chút và có thể xóa removeAllViews() hoạt động. –

10

Bạn cần phải gọi removeAllViews() trên mỗi TableRow:

int count = table.getChildCount(); 
for (int i = 0; i < count; i++) { 
    View child = table.getChildAt(i); 
    if (child instanceof TableRow) ((ViewGroup) child).removeAllViews(); 
} 
+0

Đề xuất của bạn sẽ xóa tất cả các bản xem trước của hàng nhưng không xóa hàng. Bố cục bảng sẽ được để lại với các hàng trống. – SK9

+0

Tôi biết, đó là những gì tôi nghĩ rằng poster gốc muốn. –