2011-11-23 102 views
3

我有下面的代碼有問題:如何在android的tablerow或tablelayout中生成動態textview?

TextView[] tx = new TextView[10]; 
TableRow[] tr = new TableRow[10]; 
final TableLayout tl = (TableLayout)findViewById(R.id.maintable); 
for(i = 0; i < 10; i++) 
      { 
       tx[i] = new TextView(TransactionsActivity.this); 
       tx[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
       tx[i].setText(Dates1); 
       tr[i] = new TableRow(TransactionsActivity.this); 
       tr[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
       tr[i].addView(tx[i]); 
       tl.addView(tr[i], new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
      } 

我所試圖做的是動態添加的TextView到錶行或佈局。但是,當我運行它時,這段代碼什麼都不做,儘管沒有錯誤。

我的XML代碼如下:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/energy"> 
    <ScrollView 
    android:id="@+id/scrllvwNo1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <!-- Screen Design for VIDEOS --> 
    <TextView android:id="@+id/textview1" 
       android:text="Transactions page" 
       android:padding="15dip" 
       android:textSize="18dip" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"/> 
    <Button 
       android:id="@+id/button" 
       android:text="Clear Transactions" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@id/textview2" 
       android:layout_below="@id/textview1"/> 
    <TextView android:id="@+id/textview2" 
       android:text="" 
       android:padding="15dip" 
       android:textSize="18dip" 
       android:layout_width="0dip" 
       android:layout_height="0dip" 
       android:layout_centerHorizontal="true"/>   
    <Button android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Get Transactions" 
      android:layout_toLeftOf="@id/textview2" 
      android:layout_alignTop="@id/button"/>   
    <TextView android:id="@+id/textview" 
       android:text="" 
       android:padding="0dip" 
       android:textSize="0dip" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/button"/> 

<HorizontalScrollView android:id="@+id/horz" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_below="@id/textview">    
    <TableLayout android:id="@+id/maintable" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="4" 
    android:layout_below="@id/horz"> 

    <TableRow> 
     <TextView 
      android:id="@+id/textview1" 
      android:layout_column="1" 
      android:text="Date" 
      android:padding="15dip" /> 
     <TextView 
      android:id="@+id/textview2" 
      android:layout_column="2" 
      android:text="Device" 
      android:layout_toLeftOf="@id/textview1" 
      android:padding="15dip" /> 
     <TextView 
      android:id="@+id/textview3" 
      android:layout_column="3" 
      android:text="Access Type" 
      android:layout_toLeftOf="@id/textview2" 
      android:padding="15dip" /> 
     <TextView 
      android:id="@+id/textview4" 
      android:layout_column="4" 
      android:text="Area" 
      android:layout_toLeftOf="@id/textview3" 
      android:padding="15dip" />       
    </TableRow> 

    <View 
     android:layout_height="2dip" 
     android:background="#FF909090" /> 

</TableLayout> 
</HorizontalScrollView> 
</RelativeLayout> 
</ScrollView> 
</RelativeLayout> 
+0

你怎麼能說的TextView不tablerow的增加?可能問題是tableRow添加到表的位置。分享該代碼 –

回答

0

的問題可能是,對於textviews沒有指定佈局參數。試試這個

tx[i].setLayoutParams(new LayoutParams(ViewGroup.WRAP_CONTENT, 
     ViewGroup.WRAP_CONTENT)); 

另外,TR陣列應該被添加到tablelayout

+0

我曾嘗試過,沒有運氣。 –

0

我只是刪除增加了對TextView中的LayoutParams並得到它的工作。我不知道爲什麼。

示例代碼:

for(int i = 0; i < 10; i++) 
{ 
    tx[i] = new TextView(this);      
    tx[i].setText(Dates1); 
    tr[i] = new TableRow(this); 
    tr[i].setLayoutParams(
     new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    tr[i].addView(tx[i]); 
    tl.addView(tr[i], new TableLayout.LayoutParams(
     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
} 
相關問題