2016-01-21 54 views
0

我想知道如何使用我的recyclerview包含毕加索文件。包括毕加索文件给我一个错误,它崩溃了应用程序。我面临的主要问题是将其包含在onBindView中。这里是我的适配器我file.How可以实现Picasso在我的适配器文件从URL获取图像使用Recyclerview实现毕加索

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(); 
    } 
} 
+0

请提供代码导致与stacktrace一起崩溃。 – thetonrifles

+0

请发布您的崩溃日志。 –

回答

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); 

} 
+0

它表示无法解析方法'load(java.net.URL)' – klisfer

+0

@kilsfer将它传递给URL或URI的字符串,如文档中提到的 –

+0

您可以使用URL对象的toString()。 – Christopher