arrayList<MyClass>不保存值
arrayList<MyClass> does not save the value
我正在开发一个应用程序并遇到以下问题。
从我的服务器下载数据,并以 data1、data2、data3 形式的字符串形式出现; ...
使用 split 函数,我将所有内容分开并放入一个字符串 [] 中,然后使用我的参数化 class 的 gettet 和 setter 添加一个 class 的对象。最后我做了一个 ArrayList <> 我的 class 你添加所有对象。
问题是,当我使用 ArrayList <> 时,我的 class 字段的 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的声明,是acitivtyclass的全局变量
public class Inicio extends Activity
{
ArrayList<Servicio> listaServicios = new ArrayList<Servicio>();
...
还有日志猫:
en servicio: 7 pongo asistencia: 1
en servicio: 4 pongo asistencia: 1
en servicio: 3 pongo asistencia: 1
en servicio: 6 pongo asistencia: 1
listaServicios-> id: 7 asist: 1
listaServicios-> id: 1 asist: 0
listaServicios-> id: 4 asist: 0
listaServicios-> id: 3 asist: 0
listaServicios-> id: 6 asist: 0
listaServicios-> id: 5 asist: 0
listaServicios-> id: 2 asist: 0
listaServicios-> id: 0 asist: 0
listaServicios-> id: 8 asist: 0
如果你看一下参数化的对象 class id 7 4 6 3 有 asistencia 1 但是当一个人旅行 ArrayList <> id 只有七个有 asistencia 1
问题是你程序的顺序。
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,你的日志语句中不会发生什么,因为这是在if语句中调用的,而不是在循环。
我正在开发一个应用程序并遇到以下问题。 从我的服务器下载数据,并以 data1、data2、data3 形式的字符串形式出现; ...
使用 split 函数,我将所有内容分开并放入一个字符串 [] 中,然后使用我的参数化 class 的 gettet 和 setter 添加一个 class 的对象。最后我做了一个 ArrayList <> 我的 class 你添加所有对象。
问题是,当我使用 ArrayList <> 时,我的 class 字段的 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的声明,是acitivtyclass的全局变量
public class Inicio extends Activity
{
ArrayList<Servicio> listaServicios = new ArrayList<Servicio>();
...
还有日志猫:
en servicio: 7 pongo asistencia: 1
en servicio: 4 pongo asistencia: 1
en servicio: 3 pongo asistencia: 1
en servicio: 6 pongo asistencia: 1
listaServicios-> id: 7 asist: 1
listaServicios-> id: 1 asist: 0
listaServicios-> id: 4 asist: 0
listaServicios-> id: 3 asist: 0
listaServicios-> id: 6 asist: 0
listaServicios-> id: 5 asist: 0
listaServicios-> id: 2 asist: 0
listaServicios-> id: 0 asist: 0
listaServicios-> id: 8 asist: 0
如果你看一下参数化的对象 class id 7 4 6 3 有 asistencia 1 但是当一个人旅行 ArrayList <> id 只有七个有 asistencia 1
问题是你程序的顺序。
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,你的日志语句中不会发生什么,因为这是在if语句中调用的,而不是在循环。