llenar - tablas editables en android studio
cómo eliminar la fila de la tabla en el diseño de la tabla en Android (8)
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));
}
}
El escenario es esto cuando, por primera vez, abro esta página, agrega dinámicamente filas en el diseño de la tabla ... pero si después de un tiempo cambian los datos en la base de datos ... cuando hago clic en el botón actualizar, agrega los datos nuevos después de los datos anteriores en el diseño de la tabla ... todo lo que necesito es la solución sobre cómo actualizar o eliminar la vista de texto que ya existe en el diseño de la tabla ...
gracias ...
Las otras soluciones requieren que sus filas tengan identificadores únicos.
Si no tienen identificadores únicos, ¿qué le parece usar:
tl.removeView(rowIndex);
En cualquier caso, debe intentar aprender a usar SimpleCursorAdapter o CursorAdapter porque están diseñados específicamente para mostrar el contenido de una consulta de base de datos en una lista. Consulte Enlace a datos con AdapterView .
Necesita saber que la vista de texto debe borrarse. El TextView se puede identificar configurando un ID único usando setId () o usando una etiqueta única usando setTag ().
Luego puede ser identificado por TextView tv = (TextView) tr1.findViewByTag ( etiqueta única );
Use removeView para eliminar la vista.
Prueba eliminarVer
row = (TableRow)findViewById(R.id.row);
table.removeView(row);
Me doy cuenta de que este es un hilo viejo, pero estoy tan sorprendido cuando me encontré con esto sin una respuesta decente.
Lo hago así:
TableLayout table = (TableLayout) findViewById(R.id.myTable);
table.removeAllViews();
Eso eliminará todas las vistas secundarias, en este caso las filas y todo. Por su descripción, no parece que quiera eliminar solo una fila, sino que desea eliminarlas y luego cargar las filas nuevamente. El código anterior hará la parte de eliminación.
mira este código para eliminar la fila en la tabla
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);
}
Utilizar esta:
new Handler().postDelayed(new Runnable() {
public void run() {
TableRow row = (TableRow)table.getChildAt(i);
table.removeView(row);
}
}, 100);
Donde i - es la posición de la fila, que desea eliminar.
Este método que he escrito elimina todas las filas excepto la primera. Es útil si no desea eliminar la fila del encabezado, por ejemplo:
private void cleanTable(TableLayout table) {
int childCount = table.getChildCount();
// Remove all rows except the first one
if (childCount > 1) {
table.removeViews(1, childCount - 1);
}
}
Yo uso esto:
tl.removeView(tl.getChildAt(index));