用Recyclerview实施毕加索

时间:2016-01-21 13:56:17

标签: android android-recyclerview

我想知道如何在我的recyclerview中使用Picasso库。包括picasso文件给我一个错误并且它崩溃了app。我面临的主要问题是将它包含在onBindView中。这是我的适配器文件。如何在我的适配器文件中实现Picasso以从url

获取图像

Adapter.java

package com.humanfox.klisfer.humanfox;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;


import com.squareup.picasso.Picasso;

import org.w3c.dom.Text;

import java.util.List;

public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {


    public static class PersonViewHolder extends RecyclerView.ViewHolder {
        CardView cv;
        TextView personName;
        TextView personProf;
        ImageView personPhoto;

        public PersonViewHolder(final View itemView) {
            super(itemView);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    itemView.getContext().startActivity(new Intent(itemView.getContext(), caps1.class));
                }
            });


            cv = (CardView) itemView.findViewById(R.id.cv);
            personName = (TextView) itemView.findViewById(R.id.textView);
            personProf = (TextView) itemView.findViewById(R.id.textView2);
            personPhoto = (ImageView) itemView.findViewById(R.id.imageView);
        }
    }
    private List<Person> persons;

    RVAdapter(List<Person> persons){
        this.persons = persons;
    }

    @Override
    public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item,viewGroup,false);
        PersonViewHolder pvh = new PersonViewHolder(v);
        return pvh;
    }

    @Override
    public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {
        personViewHolder.personName.setText(persons.get(i).name);
        personViewHolder.personProf.setText(persons.get(i).passion);


    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }




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

2 个答案:

答案 0 :(得分:0)

请提供完整的代码和logcat,以便我们回答这个问题

目前您可以阅读这篇文章http://www.101apps.co.za/index.php/articles/android-recyclerview-and-picasso-tutorial.html

答案 1 :(得分:0)

@Override
public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {
    personViewHolder.personName.setText(persons.get(i).name);
    personViewHolder.personProf.setText(persons.get(i).passion);

    ImageView personPhoto = personViewHolder.personPhoto;
    Picasso.with(personPhoto.getContext()).load(persons.get(i).photoUrl.toString()).into(personPhoto);

}