清除LinearLayout中的TableLayout会删除TextView标头

时间:2012-07-17 04:19:24

标签: android android-linearlayout tablelayout

我有一个插入了TextView和TableLayout的LinearLayout。这是我的xml文件的格式。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
 >
 <TextView
        android:id="@+id/txtHeader"
        android:layout_width="match_parent"
        android:text="Header"  />
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">
     <TableRow>
      <!-- Column 1 -->
      <TextView
         android:id="@+id/row1Item1"
         android:text="Column1" />
       <!-- Column 2 -->
      <TextView
         android:id="@+id/row1Item2"
         android:text="Column2" />
     </TableRow>
</TableLayout> 
</LinearLayout>  

我正在向表中动态添加行。每次,我得到更新,我需要清除表并写入新信息(行数是变量)。因此,每当我必须更新时,我都会尝试清除表格作为第一步。

    ll = (LinearLayout)findViewById(R.id.wlayout);
    tb = (TableLayout)findViewById(R.id.wtable);

private void on Update(){
tb.removeAllViewsInLayout();

Create table dynamically..
}

但它也删除了我的文本标题。我也尝试过ll.removeView(tb),其中ll是LinearLayout。谁能帮帮我吗。我是Android新手。谢谢。

1 个答案:

答案 0 :(得分:0)

你还没有给TableLayout标签提供id。请给出id,然后尝试清除它。

 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="+@id/wtable"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">
     <TableRow>
      <!-- Column 1 -->
      <TextView
         android:id="@+id/row1Item1"
         android:text="Column1" />
       <!-- Column 2 -->
      <TextView
         android:id="@+id/row1Item2"
         android:text="Column2" />
     </TableRow>
</TableLayout> 

然后尝试这个..

tb = (TableLayout)findViewById(R.id.wtable);  
tb.removeAllViewsInLayout();