获取数组位置并通过Intent发送它

时间:2015-11-06 13:38:35

标签: java android android-activity

我正在尝试将数据从一组对象发送到一个新活动。 我正在使用带有list.setOnItemClickListener的列表视图 我想要做的是将数组数据发送到单击列表视图中的项目时创建的新活动。

@Override
public void onDataChange(DataSnapshot snapshot) {

    try {
        HashMap<String, Object> casos = new HashMap<String, Object>((HashMap<String, Object>) snapshot.getValue());
        for (Object caso : casos.values()) {
            HashMap<String, Object> casoMap = (HashMap<String, Object>) caso;
            DatosCaso nuevosdatos = new DatosCaso((String)casoMap.get("nombre"), (String)casoMap.get("sexo"),(String) casoMap.get("edad"), (String)casoMap.get("color"),(String) casoMap.get("tamanio"), (String)casoMap.get("raza"), (String)casoMap.get("descripcion"), (String)casoMap.get("ubicacion"),(String)casoMap.get("contacto"),(String)casoMap.get("imagen"), (String)casoMap.get("fecha"));
            datos.add(nuevosdatos);
        }
    } catch (Exception e) {
        Log.d("NUEVOCASO", e + "");
    }
    // thread executing here can get info from database and make subsequent call
    Collections.addAll(datos);
    ponerCasoEnListview(datos); //this puts the array into a listView

}

这就是我填充数组中数据的方式。

然后我使用了这个,但我不知道如何发送数组。

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(CasosPerdidosActivity.this, CasoActivity.class);
            startActivity(intent);

        }
    });

我应该把英语(Arraylist)或类似的东西放进去吗?

2 个答案:

答案 0 :(得分:0)

要通过Intent发送数据对象,请使用Bundle并尝试使用Gson库。通过Gson将这些对象打包到JSONString中,并将其解压缩到新的Activity中(在您的情况下为CasoActivity)。

要更熟悉Gson库,请转到https://sites.google.com/site/gson/gson-user-guide

答案 1 :(得分:0)

putParcelableArrayListExtra()或将列表转换为JSONString