2011-03-21 8 views
20

Estoy iniciando una actividad y me gustaría pasarle un valor de Date(Time). He pasado todos mis otros parámetros con i.putExtra("noteName", "Hello World") pero no tengo ni idea de cómo pasar el valor de la fecha y luego recuperarlo como una fecha con getExtra().Android: Fecha de aprobación en putExra

puedo utilizar simplemente i.putExtra("noteDate",noteDate);

pero entonces, ¿cómo lo recupero en el Activity 's onCreate(); No veo un extras.getDate()?

¿Debo convertirlo a Float y luego volver (en el Activity)?

Gracias

Respuesta

1

he utilizado simplemente

i.putExtra("noteDate",myDate); 

y después de la actividad utilicé:

Date dt = new Date(extras.getString("noteDate")); 

y funciona como un encanto !? ¿Esto es peligroso? ¿Asumir que la fecha siempre se analizará correctamente en todos los dispositivos?

+3

esto está en desuso ahora. Así que es mejor usar date.getTime() y date.setTime(). – Jean

2

mejor convertir en un long, utilice putExtra(String name, long value) y recrear luego de vuelta en el nuevo Activity.

+1

Lo siento, soy muy nuevo en java, ¿podría explicar cómo hacerlo Fecha> ¿Largo y hacia atrás? –

+2

long millis = [date.getTime()] (http://docs.oracle.com/javase/7/docs/api/java/util/Date.html#getTime()); <--> Fecha de fecha = [nueva Fecha (millis)] (http://docs.oracle.com/javase/7/docs/api/java/util/Date.html#Date (long)); – naXa

34

Usa date.getTime() y date.setTime() y transfiérelo como un Largo.

i.putExtra("date", date.getTime()); 

Date d = new Date(); 
d.setTime(i.getLongExtra("date", -1)); 
+0

Gracias, pero estoy teniendo problemas con esto, mi fecha vuelve el 1 de enero de 1970 sin importar lo que haga. –

+0

compruebe para ver qué devuelve i.getLongExtra(), devuelve un -1 si "date" no está en los extras. –

+0

sí Es -1, pero si hago un i.putExtra ("noteDate", noteDate.toString()); Puedo extras.getString ("noteDate")); y el valor viene a través. Si lo pongo como una fecha y uso getIntent.getLongExtra ("noteDate", - 1)) me devuelven -1? –

0

En lugar de

i.putExtra("date", date.getTime()); 
Date d = new Date(); 
d.setTime(i.getLongExtra("date", -1)); 

USO: si está utilizando en lugar de Calendario Fecha de obtener el valor a largo

i.putExtra("date", date.getTime().getTime); 
Date d = new Date(); 
d.setTime(i.getLongExtra("date", -1)); 
Cuestiones relacionadas