Если бы я был в вашем сценарии, я бы сначала получил данные (если они небольшие по размеру), а затем беспокоился о их отображении.
Если данные должны быть большими, я попытался бы получить дополнительную информацию, пытаясь просмотреть ее
Итак, продолжим.
Подсказка: я собираюсь предположить, что вы уже знаете, как получить ваши данные (на основе класса RetrieveFeedTask2 - хотя вам, вероятно, следует отключить соединение перед возвратом)
ОБЩИЙ СЛУЧАЙ:
Во всех случаях вам нужно
1. класс говорят
class MyObject {
String id,time,temp,url;
}
2. Метод получения вашего First JSON и сохранения его в списке, скажем
public List<MyObject> fetchThenParseIntoList() {
. . .
}
и теперь вы будете использовать его, чтобы получить свой первый JSON и разобрать его в список
List<MyObject> myObjects = fetchThenParseIntoList()
Итак, теперь у вас будет список объектов "MyObject" только с идентификаторами и URL-адресами
3. Поток, которому можно дать объект для получения дополнительной информации об объекте. скажем
class ExtraInfoThread extends Thread {
private MyObject myObject;
public ExtraInfoThread(final MyObject myObject) {
this.myObject = myObject
}
@Override
public void run() {
. . .
}
}
Случай 1: Небольшие данные (скажем, менее 1000 объектов)
Цикл каждого объекта и извлечение дополнительной информации
for(MyObject myObject: myObjects) {
new ExtraInfoThread(myObject).start()
}
Теперь у вас есть объект со всеми данными, и вы можете отображать его как хотите
Случай 2: большие данные
Вызовите ветку, чтобы получить дополнительную информацию, только когда вы пытаетесь ее отобразить
public View getView() {
new ExtraInfoThread(myObject).start()
. . .
}
если вы сможете реализовать представления и выборку JSON, вы обязательно достигнете того, что ищете