PDA

Ver la Versión Completa : [ CONSULTA ] Traspaso de datos entre activitys


marellanor
25/08/14, 05:02:35
Hola!, cómo puedo saber si un textview está vacio o no tiene ninguna dato?
Me explico. Tengo un activity(primera) en el cual se ingresa un nick. Paso ese nick a la siguiente actividad(segunda) donde es un juego y se va obteniendo un puntaje. Cuando se termina el juego paso el nick, que y se ingreso en la primera activity, más el puntaje de la segunda activity, a una tercera activity. En donde si el nick viene vacio(por que no se ingreso el nick) y no se obtuvo puntaje se genera una acción, si traen datos se ejecuta otra acción.
Actualmente tengo el problema en saber si los campos traen datos o no. Los datos lo voy a utilizar para actualizar una base de dato.


Saludos y gracias!

kriogeN
25/08/14, 11:32:13
Mucho no has buscado, porque en este mismo foro se ha respondido varias veces, y en una búsqueda en Google seguro que también se encuentra fácil.

Pasar parámetro de A1 a A2:

Intent intent = new Intent(this, A2.class);
intent.putExtra("nick", nick);
intent.putExtra("puntuacion", puntuacion);
startActivity(intent);

En A2:

String nick = getIntent().getStringExtra("nick");
int puntuacion = getIntent().getIntExtra("puntuacion");

marellanor
25/08/14, 18:01:40
Si he buscado, y eso sé hacerlo. Pero lo que pasa es que cuando no ingreso datos en el A1 e intento saber si en el A2 tienen datos o no se me cae la app.

if(nick.equals("")){
hago algo
}else{
hago otra cosa
}

Lo he probado con .equals, con isEpty. y se me cae la aplicación.

Qué podrá ser?

Saludos y Gracias.

mocelet
25/08/14, 19:02:58
Si no existe el valor, getStringExtra() devuelve null.

Cualquier cosa que hagas sobre una referencia null hará que salte una excepción NullPointerException y se cierre la app si no la capturas. Eso lo deberías haber visto en las trazas (LogCat).

P.D: Evidentemente, para saber si había valor tienes que hacer un if (nick != null) { ... }

marellanor
25/08/14, 19:46:59
Si!, así es!. En el LogCast me aparece eso. 'NullPointerException'. Entonces debería hacer el IF con IF(nick!=null)?. Y eso de capturar no me queda muy claro. ¿A qué te refieres?.

Saludos y muchas gracias!!

kriogeN
25/08/14, 20:51:29
Si!, así es!. En el LogCast me aparece eso. 'NullPointerException'. Entonces debería hacer el IF con IF(nick!=null)?. Y eso de capturar no me queda muy claro. ¿A qué te refieres?.

Saludos y muchas gracias!!

No te lo tomes a mal, pero primero Java, después Android.

Java, al igual que muchos lenguajes POO, tiene un sistema llamado "mecanismo de excepciones", que se usa para indicar que un método ha provocado un fallo, así que puedes capturarlo y hacer algo en consecuencia. Si no lo capturas la aplicación se cierra con un fallo. Se captura entre un "try-catch".

Tú código tendría que ser algo así:

if (nick==null){
el parámetro nick no existe
}else if(nick.trim().equals("")){
el parámetro nick existe, pero es vacío (después de eliminar espacios)
}else{
el parámetro nick existe y tiene contenido
}

marellanor
25/08/14, 21:34:02
Ah!! Entiendo!!. Muchas gracias a los 2. Se pasaron!! :D