有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

@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) 个答案

  1. # 1 楼答案

    putParcelableArrayListExtra()或将列表转换为JSONString

  2. # 2 楼答案

    要通过Intent发送数据对象,请使用Bundle并尝试使用Gson库。通过Gson将这些对象打包到JSONString中,并在新活动中解压(在您的案例中CasoActivity

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