2016-09-13 3 views
0

В настоящее время я работаю над приложением, в котором перечислены отели рядом с вами. Я использую веб-сервис API Google google, и он отлично работает. Но я хочу напечатать расстояние и продолжительность от текущего местоположения до местоположения каждого места.Как распечатать результаты двух задач async в том же списке?

Для того, чтобы перечислить отели, я использовал асинтаску, которая затем анализирует JSON и печатает результаты в виде списка, как приложение UDACITY для солнечных лучей.

Но я хочу напечатать расстояние и продолжительность рядом с каждым отелем. Но для расстояния нужно использовать еще один api. Не могли бы вы помочь мне, как это возможно?

То есть, мне действительно нужна функция, которая вычисляет расстояние и продолжительность во время создания окончательной строки для списка, чтобы она могла быть добавлена ​​к каждому названию отеля.

+0

Я думаю, что когда список отелей пришел в методе onPost в асинхронном затем затем просто выберите отели из списка и вычислите расстояние и добавьте в адаптер для отображения –

+0

Вам нужно объединить результат как sync api на основе некоторого id или имени ваших отелей, так и после слияния надуть ваш адаптер – Anjali

+0

Но как я могу объединить ? пожалуйста, помогите мне с некоторым кодом. Я не эксперт – Levi

ответ

0

В вашем случае вы должны вызвать апи Шифрование до п + 1 раз поэтому обрабатывать данные в методе doInBackground вашего кода Пример -

private class PrepareDataAsyncTask extends AsyncTask<Void, Integer, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 

     try { 
      // call api here and get response here 
      response = apiresult(); 
      JSONArray jsonArray = new JSONArray(result); 
      for(int i=0;i<jsonArray.length();i++){ 
       // Call api and add distance and append result here for listing 
      } 
     } catch (Exception exception) { 

     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 

     super.onPostExecute(result); 
     // Set adapter here 
    } 

} 
+0

Я постараюсь вам сообщить: D в любом случае, спасибо за идею – Levi

Смежные вопросы