2011-09-12 63 views
2

我試圖以編程方式向在XML中定義的表格添加一行(此行中有內部表格)。表格佈局行有編程添加的子表格

<TableLayout android:id="@+id/maintable" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:stretchColumns="*" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <TableRow android:id="@+id/tabrow"> 
     <TableLayout android:id="@+id/tableLayout1" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      xmlns:android="http://schemas.android.com/apk/res/android"> 
      <TableRow> 
       <TextView android:id="@+id/titlerow" android:layout_height="fill_parent" android:text="Hello world" 
        android:gravity="center" android:layout_width="fill_parent" 
        android:layout_weight="1" android:textSize="17sp"></TextView> 
      </TableRow> 
      <TableRow> 
       <LinearLayout android:orientation="horizontal" 
        android:layout_width="fill_parent" android:layout_height="fill_parent" 
        android:layout_weight="1"> 
        <TextView android:text="@string/time1" android:id="@+id/time1" style="@style/timeview"></TextView> 
        <TextView android:text="@string/time2" style="@style/dayview"></TextView> 
        <TextView android:text="@string/time3" style="@style/dayview"></TextView> 

       </LinearLayout> 
      </TableRow> 

     </TableLayout> 

    </TableRow> 

現在我想在表格中多次添加這個(表格)行。

我該怎麼辦?

+0

您可能希望看到從我的問題很久以前: http://stackoverflow.com/questions/5342121/inflate-a-view-layout-into-another-layout –

+0

@kevin我厭倦了你的方式 查看menuLayout = inflater1.inflate(R .id.timealarm,mainLayout,true);此行發生錯誤 – Arjit

回答

2

這樣的事情應該做的:

// get your table layout 
TableLayout tl = (TableLayout) findViewById(R.id.WhateverYoursIs); 

// Create new row 
TableRow tr = new TableRow(this); 
tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 

// Create textview 
TextView t = new TextView(this); 
// 
// configure your textview's and do this 2 more times 
// 

t.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 

// add textview to row 
tr.addView(t); 
// 
// do this 2 more times 
// 

// add row to table 
tl.addView(tr, new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); 

你就必須把行創建-的東西,在一個循環取決於你如何往往需要