2016-11-07 3 views
-2

Привет, ребята, я работаю над проектом, который должен использовать themoviedb.org api для получения данных о фильмах. У меня есть фрагмент, прикрепленный к моей основной деятельности, и я построил адаптер. Моя проблема в том, что я хочу использовать picasso для загрузки плакатов фильма из themoviedb.org, и для этого мне нужно прочитать «poster_path» из json-данных. Я сделал асинхронную задачу, которая берет все «poster_path» из json-данных и сохраняет эти строки в массиве строк, которые я объявил в классе asynctask. Теперь я не знаю, где я должен выполнить AsyncTask в фрагменте и как передать этот массив в мой адаптер, чтобы он мог использовать егоНе знаете, где использовать asyncTask в фрагменте

+1

Выключить 'AsyncTask' в' onCreate() 'и использовать его в' onPostExecute() 'вашего определения' AsyncTask'. – Knossos

+0

Пожалуйста, покажите свой код как [mcve]. –

+0

Рассматривали ли вы использование других, более простых сетевых библиотек, таких как Retrofit, OkHttp или Volley? –

ответ

0
  • Создать Bean или Pojo класс
  • Создать сеттеры и геттеры
  • Создать AsyncTask в onCreate()
  • Fetch данные из API и сделать ArrayList вашего содержания
  • Pass ArrayList в адаптер
  • и установить содержание взглядов в адаптер класса

Чтобы легко достичь ваших требований.

Для ПРИМЕР-

Ваш класс Pojo должен быть как

as-
public class Contact { 

public int id; 
public String contacName; 
public String contactEmail; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getContacName() { 
    return contacName; 
} 

public void setContacName(String contacName) { 
    this.contacName = contacName; 
} 

public String getContactEmail() { 
    return contactEmail; 
} 

public void setContactEmail(String contactEmail) { 
    this.contactEmail = contactEmail; 
} 

}

Ваш класс адаптера должен быть вроде как -

public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.mViewHolder> { 

    // list of Contact type items 
    private List<Contact> contactList; 


    public ContactAdapter(List<Contact> contactList){ 
     this.contactList = contactList; 
    } 
    @Override 
    public mViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

    //inflaing item layout and return to holder 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_contact, 
       parent,false); 
     return new mViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(mViewHolder holder, int position) { 
     //Binding data with views 
     Contact mContect = contactList.get(position); 
     holder.txtName.setText(mContect.getContacName()); 
     holder.txtEmail.setText(mContect.getContactEmail()); 

    } 

    @Override 
    public int getItemCount() { 
     return contactList.size(); 
    } 

    public static class mViewHolder extends RecyclerView.ViewHolder{ 

     TextView txtName; 
     TextView txtEmail; 

     public mViewHolder(View itemView) { 
      super(itemView); 
      txtName = (TextView) itemView.findViewById(R.id.contactName); 
      txtEmail = (TextView) itemView.findViewById(R.id.contactEmail); 

     } 
    } 
} 

Теперь создать список класса Pojo, например List<Contact> contactsList = new ArrayList<>;. Теперь анализировать данные JSon accrodingly, как заданное имя контактного лица, как

Contact contact = new Contact(); 
contact.setName("your String fetched from Json"); 
contact.setEmail("your String fetched from Json"); 
contactList.add(contact); 

Вы можете передать ваши данные к адаптеру, как мы создали конструктор в классе адаптера. like: ContactAdapter adapter = new ContactAdapter(contactList);

Примите его и попытайтесь реализовать себя.

+0

спасибо, у меня есть другой вопрос: где я должен объявить arraylist, если в классе asynctask так, как пройти? к адаптеру, и если в компоненте или фрагменте, как добавить данные из этого, асинхронность на то, что –

+0

забыл пометить вас до –

+1

http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ взять его пример для лучшего понимания, как анализировать данные Json и связывать данные с адаптером. – Akshay

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