Tablelayout应该逐个增加行数?

时间:2013-06-29 06:21:34

标签: java android web-services android-tablelayout

数据来自服务器,想在tablelayout中显示数据,但是当服务器发出一个请求时要显示一行......

1 个答案:

答案 0 :(得分:1)

你需要使用One TablLayout和One Row View,可以根据你的数据重复。

<强> XML:

<!-- THE DATA TABLE -->
        <TableLayout
                android:id="@+id/data_table"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >
                <TableRow>
                        <TextView
                                android:text="@string/th_id"
                                android:minWidth="50px"
                                />
                        <TextView
                                android:text="@string/th_text_one"
                                android:minWidth="125px"
                                />
                        <TextView
                                android:text="@string/th_text_two"
                                android:minWidth="125px"
                                />
                </TableRow>
        </TableLayout>

<强>类别:

 // the table that displays the data
        TableLayout dataTable;
// THE DATA TABLE
        dataTable=(TableLayout)findViewById(R.id.data_table);


   /**
     * updates the table from the database.
     */
    private void updateTable()
    {


      // delete all but the first row.  remember that the count
      // starts at one and the index starts at zero


  while (dataTable.getChildCount() > 1)
    {
            // while there are at least two rows in the table widget, delete
            // the second row.
            dataTable.removeViewAt(1);
    }

        // collect the current row information from the Server and
        // store it in a two dimensional ArrayList
        ArrayList<ArrayList<Object>> data = getAllRowsAsArrays();

        // iterate the ArrayList, create new rows each time and add them
        // to the table widget.
        for (int position=0; position < data.size(); position++)
        {
                TableRow tableRow= new TableRow(this);

                ArrayList<Object> row = data.get(position);

                TextView idText = new TextView(this);
                idText.setText(row.get(0).toString());
                tableRow.addView(idText);

                TextView textOne = new TextView(this);
                textOne.setText(row.get(1).toString());
                tableRow.addView(textOne);

                TextView textTwo = new TextView(this);
                textTwo.setText(row.get(2).toString());
                tableRow.addView(textTwo);

                dataTable.addView(tableRow);
        }
    }