2011-03-24 8 views
6

Estoy intentando pasar dos enteros de mi actividad de página principal (una latitud y longitud) a una segunda actividad que contiene una instancia de Google Maps que lo hará coloque un marcador en el lat y siempre provisto. Mi enigma es que cuando recupero el paquete en la actividad de Map_Page, los enteros que paso son siempre 0, que es el valor predeterminado cuando son nulos. ¿Alguien ve algo absolutamente malo?Pasar entero entre actividades e intentos en Android siempre resulta en cero/nulo

Tengo lo siguiente almacenado en un botón, haga clic en el método OnClick.

Bundle dataBundle = new Bundle(); 

dataBundle.putInt("LatValue", 39485000); 
dataBundle.putInt("LongValue", -80142777); 
Intent myIntent = new Intent(); 
myIntent.setClassName("com.name.tlc", "com.name.tlc.map_page"); 
myIntent.putExtras(dataBundle); 
startActivity(myIntent); 

Luego, en mi actividad map_page Tengo el siguiente en onCreate para recoger los datos.

Bundle extras = getIntent().getExtras(); 
System.out.println("Get Intent done"); 
if(extras !=null) 
{ 
    System.out.println("Let's get the values"); 
    int latValue = extras.getInt("latValue"); 
    int longValue = extras.getInt("longValue"); 

    System.out.println("latValue = " + latValue + " longValue = " + longValue); 

} 

Respuesta

13
System.out.println("Let's get the values"); 
int latValue = extras.getInt("latValue"); 
int longValue = extras.getInt("longValue"); 

No es la misma que

myIntent.putExtra("LatValue", (int)39485000); 
myIntent.putExtra("LongValue", (int)-80142777); 

también podría ser porque no mantienes el nombre del Int exacto lo mismo a través de tu código. Java y el SDK de Android son sensibles a las mayúsculas y minúsculas

+0

Los valores distinguen entre mayúsculas y minúsculas, por lo que Taranasus está en lo cierto; está usando dos nombres diferentes para establecerlos/obtenerlos. –

+0

Soy el epítome de/facepalm. Al menos puedo sentirme aliviado de que haya sido un error tonto de mi parte. Apreciar la alerta. Me habría tomado mucho tiempo darme cuenta de eso. – Geeklat

+0

¡No hay problema, amigo, estoy contento de poder ayudar! – Taranasus

22

Geeklat,

No es necesario utilizar Bundle en este caso.

¿Sus pone como este ...

Intent myIntent = new Intent(); 
myIntent.setClassName("com.name.tlc", "com.name.tlc.map_page"); 
myIntent.putExtra("LatValue", (int)39485000); 
myIntent.putExtra("LongValue", (int)-80142777); 
startActivity(myIntent); 

Luego que pueda recuperarlos con ...

Bundle extras = getIntent().getExtras(); 
int latValue = extras.getInt("LatValue"); 
int longValue = extras.getInt("LongValue"); 
+1

Originalmente lo tenía de esta manera, pero lo cambié tratando de encontrar lo que estaba mal. – Geeklat

Cuestiones relacionadas