how to delete table row in table layout in android

南笙酒味 提交于 2019-12-21 03:53:48

问题


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..


回答1:


Try removeView

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



回答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);
    }
}



回答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.




回答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.




回答5:


You need to know the textview to be deleted. The TextView can be identified by setting a unique id using setId() or using a unique tag using setTag().

It can then be identified by TextView tv = (TextView) tr1.findViewByTag(unique tag);

Use removeView to delete the View.




回答6:


I use this:

tl.removeView(tl.getChildAt(index));



回答7:


look this code to remove row in table

private List<View> listViewRow;

if (listViewRow.size() > 0) {
    for (View view : listViewRow) {
        table.removeView(view);
    }
}

for (int i = 0; i < myList.size(); i++) {
    row.addView((new TextView(context).setText("Teste")), 0);
    row.addView((new TextView(context).setText("Teste")), 1);
    row.addView((new TextView(context).setText("Teste")), 2);

    listViewRow.add(row);
    table.addView(row, 1);
}



回答8:


Use this:

new Handler().postDelayed(new Runnable() {
      public void run() {
         TableRow row = (TableRow)table.getChildAt(i);
         table.removeView(row);
      }
 }, 100);

Where i - is row position, wich you want to delete.



来源:https://stackoverflow.com/questions/5553556/how-to-delete-table-row-in-table-layout-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!