如何在android中删除表格布局中的表格行

Sou*_*abh 13 android tablelayout textview

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));
   }
}
Run Code Online (Sandbox Code Playgroud)

场景是这样的,当我第一次打开这个页面时,它动态地在表格布局中添加行...但是如果在一段时间后数据库中的数据发生变化...当我点击刷新按钮时,它会在旧数据之后附加新数据表格布局......我需要的是如何刷新或删除表格布局中已存在的textview的解决方案...

感谢名单..

Ste*_*teD 17

尝试removeView

row = (TableRow)findViewById(R.id.row);
table.removeView(row);
Run Code Online (Sandbox Code Playgroud)

  • 我认为如果动态添加行,则行极不可能具有静态ID. (8认同)

Fer*_*Fer 16

我写的这个方法删除了除第一行之外的所有行.如果您不想删除标题行,则非常有用,例如:

private void cleanTable(TableLayout table) {

    int childCount = table.getChildCount();

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


Rol*_*loc 12

我意识到这是一个老线程,但当我遇到这个没有一个像样的答案时,我感到震惊.

我是这样做的:

TableLayout table = (TableLayout) findViewById(R.id.myTable);       
table.removeAllViews();
Run Code Online (Sandbox Code Playgroud)

这将删除所有子视图,在这种情况下是行和所有内容.您的描述似乎并不是要删除一行,而是要删除它们然后再次加载行.上面的代码将执行删除部分.


Mat*_*lis 6

其他解决方案要求您的行具有唯一ID.

如果他们没有唯一ID,那么如何使用:

tl.removeView(rowIndex);
Run Code Online (Sandbox Code Playgroud)

在任何情况下,您都应该尝试学习如何使用SimpleCursorAdapterCursorAdapter,因为它们专门用于在列表中显示数据库查询的内容.请参阅使用AdapterView绑定到数据.