2016-10-13 1 views
-1

So wie der Titel sagt, ich versuche, die Quelle eines ImageView, das in einem CardView liegt, festzulegen. Allerdings erhalte ich wiederholt eine Nullpointer-Ausnahme und bin mir nicht sicher warum. Dies ist, was mein Adapter wie folgt aussieht:Einstellung von ImageView in CardView

public class MovieAdapter extends CursorRecyclerViewAdapter<MovieAdapter.ViewHolder>{ 

public MovieAdapter(Context context, Cursor cursor) { 
    super(context, cursor); 
} 


public static class ViewHolder extends RecyclerView.ViewHolder{ 
    public CardView poster; 
    public ImageView poster_movie; 
    public ViewHolder(View view){ 
     super(view); 
     poster = (CardView) view.findViewById(R.id.card_movie); 
     poster_movie = (ImageView) view.findViewById(R.id.card_movie_poster); 
    } 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater 
      .from(parent.getContext()).inflate(R.layout.row, parent, false); 
    ViewHolder viewHolder = new ViewHolder(itemView); 
    return viewHolder; 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, Cursor cursor) { 
    String posterPath = cursor.getString(cursor.getColumnIndexOrThrow("posterPath")); 
    Picasso.with(super.getContext()).load("http://image.tmdb.org/t/p/w185//"+ posterPath).into(viewHolder.poster_movie); 
} 
} 

Vollfehlerprotokoll:

java.lang.IllegalArgumentException: Target must not be null. 
                at com.squareup.picasso.RequestCreator.into(RequestCreator.java:618) 
                at com.squareup.picasso.RequestCreator.into(RequestCreator.java:601) 
                at com.example.jay.udacitypopularmovies.MovieAdapter.onBindViewHolder(MovieAdapter.java:49) 
                at com.example.jay.udacitypopularmovies.MovieAdapter.onBindViewHolder(MovieAdapter.java:21) 
                at com.example.jay.udacitypopularmovies.adapters.CursorRecyclerViewAdapter.onBindViewHolder(CursorRecyclerViewAdapter.java:80) 
                at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5825) 
                at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5858) 
                at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5094) 
                at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4970) 
                at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2029) 
                at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:541) 
                at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377) 
                at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:578) 
                at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170) 
                at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3315) 
                at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3124) 
                at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3568) 
+0

posten Sie Ihre vollständige Fehlerprotokoll –

+0

Post das Layout – njzk2

+0

In Ihrem MovieAdapter.java Linie 29 und Linie 41? –

Antwort

1

Sie müssen sicherstellen, dass Sie die richtige ID zu Ihrem Image sind vorbei hier

poster_movie = (ImageView) view.findViewById(R.id.card_movie_poster); 

oder Sie füllen die richtige Layout-Datei hier

View itemView = LayoutInflater 
     .from(parent.getContext()).inflate(R.layout.row, parent, false); 
+0

Ah christ ich bin ein Idiot. Habe gerade gemerkt, dass ich nicht die richtige Sichtweise aufgeblasen habe. – SpecialSnowflake

+0

Es passiert. Bitte markieren Sie die Antwort, wenn es Ihnen hilft – Inducesmile