使用JSON字符串标记ListView项,以便在单击时可以使用它

时间:2015-11-28 23:52:25

标签: android json listview

我的目标是获得一个通过api检索的项目列表,将它们列在页面上,然后一旦点击,就会打开一个新活动,显示更多信息。

我目前在ListView中打印出列表,其中只显示(在本例中为电影)的名称,但是想要用完整的JSON标记每个ListView项目,包括所有其他信息,如Age等,以便这可以在召唤新的意图时用作EXTRA信息。

我目前在api中循环播放每部电影的代码如下:

  for(int i=0; i<jsonArray.length(); i++){
            JSONObject result = jsonArray.getJSONObject(i);
            String filmTitle = result.getString("Title");
            String filmYear = result.getString("Year");
            String filmDesc = result.getString("Desc");
            String filmPoster = result.getString("Poster");
            Film data = new Film(filmTitle, filmYear, filmDesc, filmPoster);
            ptResults.add(data);
        }

2 个答案:

答案 0 :(得分:0)

使用Gson库将JSON String映射到你想要的类...电影?让我们说UrClass
要列出添加ArrayAdapter和UrClass数组,并在项目上选择(单击)从数组中获取UrClass对象的任何内容,并通过Gson再次获取字符串并可以发送到Intent中额外字段中的其他活动

Gson的方法是从Json到Json

答案 1 :(得分:0)

制作Film班级工具Parcelable。然后,当用户从ListView中选择一个项目时,适配器已经有了要放入Intent的对象。

Parcelable类可以轻松地写入Intent并从Parcelable读取,以便在活动之间传输整个对象。

Serializable是用于序列化的Android界面。您可以使用Parcelable,但$ docker run -it b.gcr.io/tensorflow/tensorflow-full 实现是为每个实现类编写的,因此不使用重量级反射API。

Parecelable | Andoid Developers