MrSyntax MrSyntax - 25 days ago 13
Java Question

Tablelayout should increase the number of rows one by one?

The data's are coming from server, want to display data in tablelayout, but want to display one row when one request from server...

Answer

U need to use One TablLayout with One Row View which can be repeat as per your data.

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>

Class:

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