我正在使用一个返回 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 开发者网站和其他博客,但我无法将他们的示例应用于我需要做的事情。
任何帮助将非常感激