PDA

Ver la Versión Completa : [ CONSULTA ] Refrescar layout


monchyrcg
08/05/12, 23:40:31
Buenas noches, tengo un LinearLayout que relleno con botones tal que así. Decir que estos botones son tantos como tablas tengas en una base de datos, por eso lo creo así.


linear = new LinearLayout(this);
linear.setOrientation(LinearLayout.VERTICAL);

scroll.addView(linear);

Cursor c = baseDatos.cursor();
int i = 0;
while(c.moveToNext()){
button = new Button(this);
button.setId(i);
button.setText(nombres[i]);
registerForContextMenu(button);
if(!nombres[i].equals("android_metadata"))
linear.addView(button);
i++;
}


A estos botones le he registrado un menu contextual , con las opciones de renombrar y eliminar, esto me funciona muy bien, el problema es que hasta que no salgo y entro en la activity no veo el resultado. Mi pregunta es como hago para que aparte de cambiarlo en la base de datos me aparezca instantaneamente en la activity.

Ahora mismo hago una chapuza grandisima, que es cerrar la activity y volver a abrirla, se que no esta bien hecho así pero como lo puedo hacer . Aun así os pongo el código de mi chapuza


baseDatos.renombrar(nuevoNombre.getText().toString (),nombres[pr]);
dialogo.dismiss();
EjercicioVer.this.finish();
startActivity(new Intent(EjercicioVer.this,EjercicioVer.class));


Muchas gracias, un saludo.

Arasthel
09/05/12, 09:56:28
Nunca he tenido que hacer algo así, pero es posible que tengas que decirle al LinearLayout que tiene que refrescar su vista, con "linear.invalidate()". Normalmente a mí no he ha hecho falta hacer esto, pero también es verdad que yo los layouts y vistas los cojo siempre desde xmls.

Un saludo.

monchyrcg
09/05/12, 12:04:50
Eso lo tenia probado y no funciona. Muchas gracias!

Alguna opción más.