PDA

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.