【发布时间】:2011-02-22 18:16:36
【问题描述】:
我遇到了一个返回 JSON 数据(新的 DVD 标题)的外部 API。我能够解析出 JSON 并将每个 dvd 标题和其他 dvd 信息列出到 ListView 中就好了。我还能够为原始数据(标题字符串)设置一个 onListItemClick 方法。我最终为 onListItemClick 方法写了类似的东西:
请注意,productArray 是一个由另一个方法设置的类 var,该方法包含一个 JSONObjects 数组。
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent i = new Intent(DvdListingActivity.this, MovieProductActivity.class);
try {
JSONObject jsonObj = productArray.getJSONObject(position);
i.putExtra("mTitle", jsonObj.getJSONObject("Title").opt("val").toString());
i.putExtra("mRelDate", jsonObj.getJSONObject("RelDate").opt("val").toString());
i.putExtra("mDesc", jsonObj.getJSONObject("Desc").opt("val").toString());
i.putExtra("mRating", jsonObj.getJSONObject("MPAA").getJSONObject("Rating").opt("val").toString());
i.putExtra("mActors", jsonObj.getJSONObject("Actors").opt("val").toString());
i.putExtra("mImage", jsonObj.getJSONObject("Image").opt("val").toString());
startActivity(i);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
上面的代码都有效,但我认为有更好的方法让我将数据传递给另一个活动。我在想我将能够传递一个包含 dvd 电影的所有数据的 JSONObject,而不是单独设置每个数据点。
我尝试了一个半星期来弄清楚如何使用 Parcelable。我尝试实例化一个新的 JSONObject jsonObj,它实现了 Parcelable 但没有运气。我的 LogCat 中不断收到错误消息,提示该对象不可打包。
我已经尝试阅读 Android 开发者网站和其他博客,但我无法将他们的示例应用到我需要做的事情上。
任何帮助将不胜感激
【问题讨论】:
-
与您对本网站的一般使用有关,相信您应该阅读以下内容:meta.stackexchange.com/questions/16721/…
标签: android android-activity parcelable