0

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

在此处输入图像描述

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

这是布局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 所示。

4

1 回答 1

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 等等,请检查一下,这是问题吗

于 2013-08-16T11:58:47.190 回答