Android: передать значения JSON в новое действие через CustomListview и OnItemClickListener.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android: передать значения JSON в новое действие через CustomListview и OnItemClickListener.

Сообщение Anonymous »

У меня возникла небольшая проблема с моим кодом, возможно, это потому, что я новичок в Android, или, может быть, я слишком долго этим занимаюсь.
Я хотел написать код для получения контента из 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)
Проблема: каждый элемент списка передает одно и то же значение... тот, который создается последним в цикле for... сюрприз ... после нескольких часов поиска в Google и попыток мне нужна помощь в интеграции переменной (i) в метод onclick.
Я пробовал вот так

Код: Выделить всё

//[....]
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»