JSONデータ(新しいDVDタイトル)を返す外部APIを使用しています。JSONを解析して、各DVDタイトルとその他のDVD情報をListViewにリストすることができます。また、プリミティブデータ(タイトル文字列)に対してonListItemClickメソッドを適切に設定することもできました。私はonListItemClickメソッドに対してそのようなものを書くことになりました:
ちなみに、productArrayは、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();
}
}
上記のコードはすべて機能しますが、データを別のアクティビティに渡すためのより良い方法がGOTTAにあると思います。各データポイントを個別に設定する代わりに、DVDムービーのすべてのデータを含むJSONObjectを渡すことができると考えていました。
Parcelableの使い方を理解するために1週間半試しました。運が悪かったParcelableを実装する新しいJSONObjectjsonObjをインスタンス化してみました。LogCatで、オブジェクトがパーセルできないというエラーが発生し続けました。
Android開発者サイトや他のブログを読んでみましたが、それらの例を必要なものに適用できませんでした。
どんな助けでも大歓迎です