2009-09-10 36 views
8

Tôi đang cố gắng thêm động và xóa các hàng khỏi TableLayout.Tự động thêm và xóa các hàng trong bảng - Android

Bố cục được xác định trong tệp xml.

Tôi có thể xóa thành công một hàng, nhưng khi tôi gọi lệnh addView tương ứng, không có gì xảy ra.

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

table.removeView(row); 

table.addView(row); 

Kết quả này bị xóa nhưng không được thêm lại.

Chỉnh sửa: Hóa ra cuối cùng, nó sẽ được thêm vào nếu ở cuối màn hình thay vì ở cùng một vị trí với vị trí đã bị xóa.

tôi có thể thêm nó vào đúng vị trí bằng cách xác định các chỉ số:

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

nhưng tôi không thể tìm ra cách để xác định chỉ số của hàng, có vẻ không phải là một phương pháp để hoàn thành việc này. ai biết làm thế nào để làm điều đó? (ví dụ: nếu tôi không biết chỉ mục là 4 cách tôi có thể hiểu được điều đó)

Chỉnh sửa: bao gồm XML. điều này chỉ là hàng trong câu hỏi, có hàng khác ở trên và dưới nó

<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> 
+0

Mã của bạn hoạt động tốt với bố cục thử nghiệm. Giống như để xem bố cục XML của bạn để nhận xét thêm. – bhatt4982

+0

Bạn có hàng ở trên và dưới hàng được đề cập không? – brodie31k

Trả lời

1

Sử dụng hierarchyviewer (trong SDK của bạn tools/ thư mục) để xác định xem hàng được thực sự không được bổ sung, hoặc đang được thêm vào nhưng một số bố trí các thông số bị sai lệch và do đó nó không xuất hiện trên màn hình.

+0

Đã không hoàn toàn giúp đỡ ở đây, nhưng cảm ơn cho người đứng đầu lên tôi đã không đi xem một hệ thống phân cấp trước đây. – brodie31k

1
public int indexOfChild (View child) 

public View getChildAt (int index) 

Cả hai phương pháp do TableLayout cung cấp. ;-)

Các vấn đề liên quan