如何在Android中的TableRow或TableLayout中生成动态TextView?

3
我有一个关于以下代码的问题:
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));
            }

我想做的是动态向表格行或布局添加文本视图。但是当我运行此代码时,它什么也不做,虽然没有错误。

我的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>

你怎么说TextView没有添加到TableRow中?可能问题出在TableRow被添加到Table的位置上。请分享相关代码。 - Shailendra Singh Rajawat
2个回答

0
问题可能是文本视图的布局参数未指定。请尝试以下操作。
tx[i].setLayoutParams(new LayoutParams(ViewGroup.WRAP_CONTENT,
        ViewGroup.WRAP_CONTENT));

同时,应将 tr 数组添加到 tablelayout 中。


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));
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接