gpt4 book ai didi

android - 将 JSONObject 传递给另一个 Activity

转载 作者:IT王子 更新时间:2023-10-29 00:07:04 26 4
gpt4 key购买 nike

我遇到了一个返回 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();
}

}

上面的代码都可以工作,但我认为有更好的方法让我将数据传递给另一个 Activity 。我在想我将能够传递一个包含 dvd 电影的所有数据的 JSONObject,而不是单独设置每个数据点。

我尝试了一个半星期来弄清楚如何使用 Parcelable。我尝试实例化一个新的 JSONObject jsonObj,它实现了 Parcelable 但没有运气。我的 LogCat 中不断收到错误消息,提示该对象不可打包。

我已经尝试阅读 Android 开发者网站和其他博客,但我无法将他们的示例应用到我需要做的事情上。

任何帮助将不胜感激

最佳答案

您可以简单地将整个 JSONObject 作为字符串。像这样的:

i.putString("product", jsonObj.toString);

然后在 MovieProductActivity 你可以

JSONObject jsonObj = new JSONObject(getIntent().getStringExtra("product"));

关于android - 将 JSONObject 传递给另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com