我正在尝试将数据从一组对象发送到一个新活动。
我正在使用带有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)或类似的东西放进去吗?
答案 0 :(得分:0)
要通过Intent
发送数据对象,请使用Bundle
并尝试使用Gson
库。通过Gson将这些对象打包到JSONString中,并将其解压缩到新的Activity中(在您的情况下为CasoActivity
)。
要更熟悉Gson库,请转到https://sites.google.com/site/gson/gson-user-guide
答案 1 :(得分:0)
putParcelableArrayListExtra()
或将列表转换为JSONString
。