Я хотел написать код для получения контента из JSON, создания ListView из одного из значений объектов и передачи onClick другого значения в новое действие.
Это немного похоже на новостное приложение, имеющее заголовок в ListView и содержимое в следующем Активность.
Теперь я застрял в цикле for...
Код: Выделить всё
try {
jsonObject = new JSONObject(uebergabe);
jsonArray = jsonObject.getJSONArray("Fux");
for (int i = 0; i < jsonArray.length(); i++) {
HashMap Hashmap = new HashMap();
JSONObject jO = jsonArray.getJSONObject(i);
String headline = jO.optString("headline");
Hashmap.put("headline", headline);
final String content = jO.optString("content");
Hashmap.put("content", content);
arrayList.add(Hashmap);
list = (ListView) findViewById(R.id.list_fuxenfibel);
ListAdapterFibel adapterFibel = new ListAdapterFibel(this, R.layout.layout_fibel, arrayList);
list.setAdapter(adapterFibel);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view,int position, long id)
{
Intent intent = new Intent(Fuxenfibel.this, Fuxenfibel_Inhalt.class);
intent.putExtra("content", content);
startActivity(intent);
}
});
}
} catch (JSONException e)
Я пробовал вот так
Код: Выделить всё
//[....]
final int x=i;
//[.....]
@Override
public void onItemClick(AdapterView parent, View view,int position, long id) {
try {
JSONObject jObj = jsonArray.getJSONObject(x);
String content = jObj.optString("content");
Intent intent = new Intent(Fuxenfibel.this, Fuxenfibel_Inhalt.class);
intent.putExtra("content", content);
startActivity(intent);
}catch (JSONException e){}
//[...]
Пожалуйста, объясните, что я делаю не так, или лучше объясните на примере.
Спасибо
Еще один последний вопрос для понимания, в моем коде метод onItemClick находится внутри цикла for и передает только последнее значение. Означает ли это, что он применяется только к клику, или есть другая причина?
Подробнее здесь: https://stackoverflow.com/questions/328 ... mclicklist
Мобильная версия