Tengo el siguiente còdigo:
Código: text
Explicacion: este codigo se ejecuta cada x segundos lo que hace es comparar un elemento nuevo atravez de un objeto JSON con una lista, si el elemento ya existe entonces no lo agrega.
Pero descubri algo:
si la lista mensajes por ejemplo tiene 0 elementos, entonces nunca se ejecuta el for, por lo que no agregaria nada al final .. para solucionar esto pense en lo siguiente:
Código: text
Pero tengo un problema:
Mi arraylist contiene varias listas por lo que el metodo: f(!mensajes.contains(lal3.getString(i)))
no funcionaria por que buscaria en toda la lista y esta lista contiene como 16 elementos.
entonces la pregunta es:
como puedo buscar una cadena de una lista especifica y compararla con una cadena?
en cuestion tendrìa que parcerse a esto (metodo hipotetico):
Código: text
?
Como puedo buscar especificamente dentro de mensajes.getidm()?
resulta que los arraylist parece que necesitan un valor de index por ejemplo: mensajes.get(0).getidm()
que se referiria al elemento 0 de dicha lista, pero no puedo utilizar ni for ni contains sin especificar un valor de index.
Alguna soluciòn?
if (objetologin != null) {
try {
JSONArray jsonArray = new JSONArray();
jsonArray.put(objetologin);
JSONArray lal3 = objetologin.getJSONArray("IDM");
JSONArray lal1 = objetologin.getJSONArray("ESTADO");
JSONArray lal2 = objetologin.getJSONArray("ARCHIVO");
for(int i = 0; i <= lal3.length(); i++) {
for(int b=0;b<=mensajes.size();b++) {
if(mensajes.get(b).getidm() != lal3.getString(i)) {
lista.setestadom(lal1.getString(i));
lista.setarchivo(lal2.getString(i));
lista.setidm(lal3.getString(i));
mensajes.add(lista);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
Explicacion: este codigo se ejecuta cada x segundos lo que hace es comparar un elemento nuevo atravez de un objeto JSON con una lista, si el elemento ya existe entonces no lo agrega.
Pero descubri algo:
si la lista mensajes por ejemplo tiene 0 elementos, entonces nunca se ejecuta el for, por lo que no agregaria nada al final .. para solucionar esto pense en lo siguiente:
if (objetologin != null) {
try {
JSONArray jsonArray = new JSONArray();
jsonArray.put(objetologin);
JSONArray lal3 = objetologin.getJSONArray("IDM");
JSONArray lal1 = objetologin.getJSONArray("ESTADO");
JSONArray lal2 = objetologin.getJSONArray("ARCHIVO");
for(int i = 0; i <= lal3.length(); i++) {
if(!mensajes.contains(lal3.getString(i))) {
lista.setestadom(lal1.getString(i));
lista.setarchivo(lal2.getString(i));
lista.setidm(lal3.getString(i));
mensajes.add(lista);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
Pero tengo un problema:
Mi arraylist contiene varias listas por lo que el metodo: f(!mensajes.contains(lal3.getString(i)))
no funcionaria por que buscaria en toda la lista y esta lista contiene como 16 elementos.
entonces la pregunta es:
como puedo buscar una cadena de una lista especifica y compararla con una cadena?
en cuestion tendrìa que parcerse a esto (metodo hipotetico):
f(!mensajes.getidm().contains(lal3.getString(i)))
?
Como puedo buscar especificamente dentro de mensajes.getidm()?
resulta que los arraylist parece que necesitan un valor de index por ejemplo: mensajes.get(0).getidm()
que se referiria al elemento 0 de dicha lista, pero no puedo utilizar ni for ni contains sin especificar un valor de index.
Alguna soluciòn?