Android ArrayList对象的值将更改

Android ArrayList对象的值将更改,android,arraylist,Android,Arraylist,我不得不来这里请求你的帮助,因为我开始生气了。我将尽可能简单地解释: 我正在查询数据库,它工作正常。 根据这些结果,我需要创建一个对象并将其添加到该对象的arraylist中 Cita Cita=新的Cita(); ArrayList citas 我检查每个“Cita”并且它有正确的值,即使我在循环期间从ArrayList获得Cita。当我想要访问arraylist的具体索引时,问题就出现了。不管我需要什么索引,它只返回最后一个索引的值,或者每个对象都有arraylist的最后一个对象的值 这就

我不得不来这里请求你的帮助,因为我开始生气了。我将尽可能简单地解释:

我正在查询数据库,它工作正常。 根据这些结果,我需要创建一个对象并将其添加到该对象的arraylist中

Cita Cita=新的Cita(); ArrayList citas

我检查每个“Cita”并且它有正确的值,即使我在循环期间从ArrayList获得Cita。当我想要访问arraylist的具体索引时,问题就出现了。不管我需要什么索引,它只返回最后一个索引的值,或者每个对象都有arraylist的最后一个对象的值

这就是我从日志中得到的

  • E/Horacataaaa(11331):11:0:00.000000
  • E/Empresaaa(11331):Aki
  • E/Horacataaaa(11331):1:0:00.000000
  • E/Empresaaa(11331):Edite formacion
  • E/Horacataaaa(11331):4:13:00.000000
  • E/Empresaaa(11331):Aki
  • E/Horacataaaa(11331):6:56:00.000000
  • E/Empresaaa(11331):格雷法
  • E/Horadespuessss(11331):6:56:00.000000
  • E/Horadespuessss(11331):6:56:00.000000
  • E/Horadespuessss(11331):6:56:00.000000
  • E/Horadespuessss(11331):6:56:00.000000
感谢大家的支持,你做了一件了不起的工作

@Override
    protected void onPostExecute(Boolean result) {
        // TODO Auto-generated method stub

        citas = new ArrayList<Cita>(jArray.length());

        for (int i=0; i < jArray.length(); i++){
            JSONObject jsonObject;
            try {
                //crea un objeto json con un objeto del array json
                jsonObject = jArray.getJSONObject(i);

                //recoge el valor del campo ID_CITA
                id_cita=jsonObject.getInt("ID_CITA");
                //recoge el valor del campo ID_EMPRESA
                id_empresa=jsonObject.getInt("ID_EMPRESA");
                //recoge el valor del campo HORA_CITA
                hora_formato = jsonObject.getString("HORA_CITA");

                empresa = new Empresa(id_empresa,jsonObject.getString("NOMBRE"),jsonObject.getString("CIF"),jsonObject.getString("DIRECCION"),jsonObject.getString("POBLACION"));


                fecha.setHoraFecha(hora_formato);


                cita = new Cita(itinerario,fecha,empresa);
                cita.setId(id_cita);


                citas.add(cita);

                Log.e("HORACITAAAAAA", citas.get(i).getHora());
                Log.e("EMPRESAAAA", citas.get(i).getEmpresa().getNombre());

                if (i==3){
                    for(int u = 0 ; u < citas.size(); u++){
                        Log.e("HORADESPUESSSSSS", citas.get(u).getHora());

                    }
                }


            } catch (JSONException e) {
                e.printStackTrace();
                Log.e("ERROR => ", "Error en el POSTEXECUTE");
            }   
        }


        actualizaListCitas(citas);
    }   
@覆盖
受保护的void onPostExecute(布尔结果){
//TODO自动生成的方法存根
citas=newArrayList(jArray.length());
for(int i=0;i”,“ERROR en el POSTEXECUTE”);
}   
}
西塔斯(西塔斯);
}   

看起来您正在“cita”的所有实例之间共享“fecha”对象。

感谢我解决了这个问题,我不得不在循环中重新创建“Fechas”对象。知道了!