Динамическое заполнение CardView картинками из сети посредством Picasso

Рейтинг: 1Ответов: 1Опубликовано: 28.03.2015

Приветствую вас, господа.

Имеются динамически появляемые CardView (в зависимости от количества строк на сайте). Как заполнить ImageView, лежавший в CardView динамически? То есть три строки имеем, три cardview выводим, три разные картинки (Picasso.with(getApplicationContext()).load("http://www.example/img.jpg") (Пример загрузки)) подгружаем?

Код Адаптера под CardView(RecuclerView):

public class Adapter_Card_View extends RecyclerView.Adapter<Adapter_Card_View.ViewHolder> {
private ArrayList<String> mDataset;
public static class ViewHolder extends RecyclerView.ViewHolder {
    public TextView mTextView;

    public ViewHolder(View v) {
        super(v);
        mTextView = (TextView) v.findViewById(R.id.info_text);
    }
}
public Adapter_Card_View(ArrayList<String> dataset) {
    mDataset = dataset;
}
@Override
public Adapter_Card_View.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view, parent, false);
    ViewHolder vh = new ViewHolder(v);
    return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.mTextView.setText(mDataset.get(position));
}
@Override
public int getItemCount() {
    return mDataset.size();
}
}

Код Фрагмента, в котором все это дело выводим:

private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private Adapter_Card_View mAdapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_room_fond, container, false);
    //Определение переменных
    ArrayList<String> myDataset = getDataSet();
    mRecyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new Adapter_Card_View(myDataset);
    mRecyclerView.setAdapter(mAdapter);

    return rootView;
}

//Добавление карточек
private ArrayList<String> getDataSet() {
    ArrayList<String> mDataSet = new ArrayList();
    for (int i = 0; i < Main.titleList.size(); i++) {

        String s = Main.titleList.get(i);
        mDataSet.add(i, s);
    }
    return mDataSet;
}

Количество нужных строк на сайте определяется парсингом с помощью jsoup (записываем в Main.titleList.

Заранее благодарен за ответы.

Ответы

▲ 2
  1. В лэйаут карточки добавьте ImageView.

  2. В ViewHolder классе адаптера создайте, найдите и присвойте ImageView.

  3. В onBindViewHolder стартуйте загрузку картинки и по её окончанию присваивайте её ImageView.

  4. ???

  5. Profit!!!11one1