Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Al recorrer un Array solo obtengo el último valor.

Tengo un método en el que va el siguiente bucle:
for (int i=0; i<geofenceTransitionDetails.length; i++) {
enviarDatos(geofenceTransitionDetails[i]);
}

El método enviarDatos es el siguiente:
private void enviarDatos(String nombreNoti) {

ArrayList<String> sortedKeys = new ArrayList<String>(TITULO_LANDMARKS.keySet());

for(int x=0;x<sortedKeys.size();x++) {
if(sortedKeys.get(x).equals(nombreNoti)) {
titulo=TITULO_LANDMARKS.get(sortedKeys.get(x).);
break;
}

}

sendNotification(nombreNoti,titulo);
}
En él comparo las claves de un HashMap (TITULO_LANDMARKS)con el String nombreNoti y si coinciden obtengo el valor del HashMap (titulo).
Una vez obtenido lo envío al método sendNotification. Que consiste en lo siguiente:
private void sendNotification(String nombreNotification, String tituloPasado) {

...
.setContentTitle(nombreNotification)
.setContentText(tituloPasado)
...

El problema surge cuando ejecuto el código y recibo la notificación (pues de una notificación de Android se trata), .setContentTitle(nombreNotification)lo recibo correctamente, serían (tres notificaciones en mi prueba):

Tapas y comida rápida El Puchero
Alojamiento Alexis
Alojamiento Alonso de Ojeda

El problema surge con .setContentText(tituloPasado)en el que recibo siempre el mismo valor: "Habitación doble 30 €" que corresponde en la base de datos al último valor (Alojamiento Alonso de Ojeda), quedando de la siguiente manera:

Tapas y comida rápida El Puchero
Habitación doble 30 €

Alojamiento Alexis
Habitación doble 30 €

Alojamiento Alonso de Ojeda
Habitación doble 30 €

Con lo que el problema debe estar en el bucle for de enviarDatos. Por muchas vueltas que le he dado no consigo solucionarlo, así que si alguien pudiera orientarme se lo agradecería mucho.

agosto 14, 2018 | Registered Commenterjoak