how to delete table row in table layout in android

36,890

Solution 1

Try removeView

row = (TableRow)findViewById(R.id.row);
table.removeView(row);

Solution 2

This method I have written removes all rows except the first one. It is useful if you don't want to remove the header row, for example:

private void cleanTable(TableLayout table) {

    int childCount = table.getChildCount();

    // Remove all rows except the first one
    if (childCount > 1) {
        table.removeViews(1, childCount - 1);
    }
}

Solution 3

I realize this is a old thread but I as shocked when I came across this without a decent answer.

I do it like this:

TableLayout table = (TableLayout) findViewById(R.id.myTable);       
table.removeAllViews();

That will remove all of the child views, in this case rows and everything. It doesn't seem by your description that you want to delete just one row, but that you want to remove them and then load the rows again. The above code will do the removing part.

Solution 4

The other solutions require your rows to have unique ids.

If they don't have unique ids then how about using:

tl.removeView(rowIndex);

In any case, you should try learning how to use SimpleCursorAdapter or CursorAdapter because they are specifically designed for displaying the content of a database query in a list. See Binding to Data with AdapterView.

Solution 5

I use this:

tl.removeView(tl.getChildAt(index));
Share:
36,890
Sourabh
Author by

Sourabh

I am Sourabh Rustagi, a Computer Science graduate, software developer Email: [email protected]

Updated on August 20, 2020

Comments

  • Sourabh
    Sourabh over 3 years
    void init()
    {
       intcolumnwidth1 = int_scr_wd*55;
       intcolumnwidth1 = intcolumnwidth1/100;
       for (int i = 0; i < strarr.length-1; i++)
       {
          strinarr = fun1.split(strarr[i].trim(),"^");
          tr1 = (TableRow) new TableRow(this);
          txt1=new TextView(this);
          txt1.setWidth(intcolumnwidth1);
          txt1.setText(strinarr[0]);
          tr1.addView(txt1);
          tl.addView(tr1,new TableLayout.LayoutParams(layoutParams));
       }
    }
    

    Scenario is this when for the first i open this page it dynamically adds rows in the table layout ... but if after some time data in database changes ... when i click on refresh button it appends the new data after the old data in the table layout... all i need is the solution for how to refresh or delete textview that already exists in the table layout...

    thanx..

  • Matthew Willis
    Matthew Willis about 13 years
    I think it's highly unlikely that the rows will have static ids if they are added dynamically.
  • ρяσѕρєя K
    ρяσѕρєя K almost 8 years
    Add some explanation with answer for how this answer help OP in fixing current issue