第一个TableRow未显示

时间:2013-08-16 11:15:59

标签: java android tablelayout tablerow

我正在尝试创建一个TableLayout,但发生了一些错误:

enter image description here

第一个红色行中的数据应该位于第二个白色行中。

这是布局xml文件:

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="horizontal|vertical"
android:layout_weight="1"
android:background="#838080">

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

<TableLayout 
     android:id="@+id/myOtherTableLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ></TableLayout>    
<HorizontalScrollView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#000">


<TableLayout

    android:id="@+id/myTableLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal|vertical"
    android:background="#FFFFFF"
     >
</TableLayout>
</HorizontalScrollView>
</LinearLayout>
</ScrollView>

以下是代码:

 Color c = new Color();

    setContentView(R.layout.data_table_creater_activity);

    android.widget.TableRow.LayoutParams params = new TableRow.LayoutParams(
                LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);

    params.setMargins(10, 0, 2, 0);
    rowFiller();
    TableLayout TbL = (TableLayout) findViewById(R.id.myOtherTableLayout);

    TableRow headerRowHead = new TableRow(this);
    headerRowHead.setId(51);
    headerRowHead.setBackgroundColor(c.rgb(241,26,41));

    TextView header1 =  new TextView(this);
    header1.setText(Html.fromHtml("<u>Purchase_Order_Number</u>"));
    header1.setLayoutParams(params);
    headerRowHead.addView(header1);

    TextView header2 =  new TextView(this);
    header2.setText(Html.fromHtml("<u>Vendor</u>"));
    header2.setLayoutParams(params);
    headerRowHead.addView(header2);

    TextView header3 =  new TextView(this);
    header3.setText(Html.fromHtml("<u>Currency</u>"));
    header3.setLayoutParams(params);
    headerRowHead.addView(header3);

    TextView header4 =  new TextView(this);
    header4.setText(Html.fromHtml("<u>Total_Price</u>"));
    header4.setLayoutParams(params);
    headerRowHead.addView(header4);


    TbL.addView(headerRowHead, new TableLayout.LayoutParams(

            LayoutParams.WRAP_CONTENT,

            LayoutParams.WRAP_CONTENT
            ));


    TableRow headerRowData = new TableRow(this);
    headerRowData.setId(50);
    headerRowData.setBackgroundColor(c.rgb(255,255,255));
    TextView headerData1 =  new TextView(this);
    header1.setText("0350005000");
    header1.setLayoutParams(params);
    headerRowData.addView(headerData1);
    TextView headerData2 =  new TextView(this);
    header2.setText("Vendor_A");
    header2.setLayoutParams(params);
    headerRowData.addView(headerData2);
    TextView headerData3 =  new TextView(this);
    header3.setText("EUR");
    header3.setLayoutParams(params);
    headerRowData.addView(headerData3);
    TextView headerData4 =  new TextView(this);
    header4.setText("44.60");
    header4.setLayoutParams(params);
    headerRowData.addView(headerData4);

    TbL.addView(headerRowData, new TableLayout.LayoutParams(

            LayoutParams.WRAP_CONTENT,

            LayoutParams.WRAP_CONTENT
            ));

为什么第一行的数据没有显示?为什么第二行的数据显示在第一行?

使用header1.setText(Html.fromHtml("<u>*Text*</u>"));,下划线文字可以正常工作,如下面的TableLayout所示。

1 个答案:

答案 0 :(得分:0)

TextView headerData1 =  new TextView(this);
    header1.setText("0350005000");
    header1.setLayoutParams(params);
    headerRowData.addView(headerData1);
    TextView headerData2 =  new TextView(this);
    header2.setText("Vendor_A");
    header2.setLayoutParams(params);
    headerRowData.addView(headerData2);
    TextView headerData3 =  new TextView(this);
    header3.setText("EUR");
    header3.setLayoutParams(params);
    headerRowData.addView(headerData3);
    TextView headerData4 =  new TextView(this);
    header4.setText("44.60");
    header4.setLayoutParams(params);
    headerRowData.addView(headerData4);

你已经为headerData1,headerData2,headerData3和headerData4添加了header3而不是headerData3,请检查一下,这是问题