Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - darkkk

#1
Tengo el siguiente còdigo:

Código: text
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:

Código: text
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):

Código: text
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?