我正在开发一个应用程序,并且有以下问题。从我的服务器下载数据,格式为data1,data2,data3; ...使用split函数,我将所有东西放到字符串[]中,然后使用我的参数化类的gettet和setter添加该类的对象。最后,我在我的类中创建一个ArrayList ,添加所有对象。问题是,当我使用ArrayList 时,我的类字段的asistencia初始化为0,并且没有复制实际数据。我把代码和日志猫。感谢您的时间和帮助。result = convertInputStreamToString(inputStream);String[] aux1 = result.split(":");for (int i =0; i< aux1.length; i++){ Servicio servAux = new Servicio(); String[] aux = aux1[i].split(";"); servAux.setTipo(Integer.parseInt(aux[0])); servAux.setNombre(aux[1]); servAux.setDescripcion(aux[2]); servAux.setHora(aux[3]); servAux.setMinuto(aux[4]); servAux.setLugar(aux[5]); servAux.setDuracion(aux[6]); servAux.setFecha(aux[7]); servAux.setHoraCero(aux[8]); servAux.setId(Integer.parseInt(aux[9])); for (int j=0; j<serviciosSi.size();j++) { if (servAux.getId() == serviciosSi.get(j)) { servAux.setAsistencia(1); Log.i("result","en servicio: "+servAux.getId()+" pongo asistencia: "+servAux.getAsistencia()); } else servAux.setAsistencia(0); } listaServicios.add(servAux);}for(int j =0; j<listaServicios.size();j++){ Log.i("result","listaServicios-> id: "+listaServicios.get(j).getId()+" asist: "+listaServicios.get(j).getAsistencia());}我把ArrayList的声明,是活动类的全局变量public class Inicio extends Activity{ ArrayList<Servicio> listaServicios = new ArrayList<Servicio>(); ...和日志猫:en servicio: 7 pongo asistencia: 1en servicio: 4 pongo asistencia: 1en servicio: 3 pongo asistencia: 1en servicio: 6 pongo asistencia: 1listaServicios-> id: 7 asist: 1listaServicios-> id: 1 asist: 0listaServicios-> id: 4 asist: 0listaServicios-> id: 3 asist: 0listaServicios-> id: 6 asist: 0listaServicios-> id: 5 asist: 0listaServicios-> id: 2 asist: 0listaServicios-> id: 0 asist: 0listaServicios-> id: 8 asist: 0如果您将id 7 4 6 3的参数化类的对象放入asistencia 1,但是当一个行进到ArrayList id时,只有七个具有asistencia 1 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 问题是程序的顺序。for (int j=0; j<serviciosSi.size();j++) { if (servAux.getId() == serviciosSi.get(j)) { servAux.setAsistencia(1); Log.i("result","en servicio: "+servAux.getId()+" pongo asistencia: "+servAux.getAsistencia()); } else servAux.setAsistencia(0); } listaServicios.add(servAux);因此,如果在循环的最后一次迭代中,它将进入else路径,则asistencia将被设置为0,这在您的log语句中不会发生,因为这是在if语句中而不是在循环之后进行的。 (adsbygoogle = window.adsbygoogle || []).push({}); 09-05 10:51