Я использую внешний API, который возвращает данные JSON (новые названия dvd). Я могу разобрать 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();
}
}
Вышеприведенный код работает, но я думаю, что GOTTA станет лучшим способом передать данные другим действиям. Я думал, что я смогу передать JSONObject, который содержит все данные для фильма dvd, вместо того, чтобы устанавливать каждую точку данных отдельно.
Я пробовал в течение недели и полу, чтобы выяснить, как использовать Parcelable. Я попытался создать экземпляр нового JSONObject jsonObj, который реализует Parcelable без везения. Я продолжал получать ошибку в своем LogCat, который сказал, что объект был неприемлемым.
Я пробовал читать сайт разработчика Android и другие блоги, но я не мог применить их примеры к тому, что мне нужно было сделать.
Любая помощь будет высоко оценена