Ver la Versión Completa : [ CONSULTA ] Cambiar TextView desde distinta clase
KrLx_roller
11/01/12, 17:53:20
Necesito cambiar un TextView que está en la Activity 'UNO' desde la Activity 'TRES'. He buscado información pero no hay manera, y las ideas que he ido teniendo han ido fallando miserablemente una tras otra. Podría alguien ayudarme porfavor?
Gracias de antemano!
EDITO: No quiero pasar la string mediante un putExtra en un intent, sino cambiarlo directamente desde la Activity 'TRES' sin pasar ni por la 'DOS' ni por la 'UNO'
kriogeN
11/01/12, 19:40:57
Puedes hacerlo pasando el intent de la clase UNO a la clase TRES, poniendolo en el putExtra por ejemplo, y que la clase UNO tenga una función pública que haga el cambio.
PERO!!! Android no te garantiza que la Activity UNO vaya a estar viva cuando estés en la Activity TRES, así que puede ser que obtengas un precioso NullException que tendrás que controlar.
KrLx_roller
11/01/12, 19:59:22
Gracias por la respuesta! Investigando un poco más a fondo he encontrado que si declaro la variable en UNO como public static se me soluciona el problema, lo que pasa es que lo declaro: public static TextView player1 = new TextView(null); pero mi sigue dando el problema. Este sería el método ideal...
Arasthel
12/01/12, 10:42:11
Puedes hacer un método público que te de el Context de la Activity UNO. Yo tengo algo así:
public static Context myContext(){
return NombreDeLaClase.this;
}
Y luego tengo un método tal que así:
public void setTextViewText(int id, String text){
TextView tv = (TextView) findViewById(id);
tv.setText(text);
}
Y lo llamo tal que así desde la que sería la actividad TRES:
NombreDeLaClaseUNO.myContext().setTextViewText(R.i d.laquesea, "Hello world!");
Quizás no sea lo más elegante y sea un poco lioso, pero funciona. Aprovecho para preguntar si hay otra forma mejor.
Un saludo.
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.