2016-10-13 2 views
-1

Так как заголовок говорит, я пытаюсь установить источник ImageView, который находится внутри CardView. Тем не менее, я неоднократно получаю исключение nullpointer, и я не уверен, почему. Это то, что мой адаптер выглядит следующим образом:Настройка ImageView внутри 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); 
} 
} 

Полный журнал регистрации ошибок:

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

опубликовать полный журнал ошибок –

+0

опубликовать макет – njzk2

+0

В вашей программе MovieAdapter.java 29 и строке 41? –

ответ

1

Вы должны убедиться, что вы передаете правильный идентификатор для вашего ImageView здесь

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

или вы раздуваете правый файл макета здесь

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

Ах, христианин Я идиот. Просто понял, что я не раздувал правильный взгляд. – SpecialSnowflake

+0

Это действительно так. Пожалуйста, отметьте ответ, если это поможет вам – Inducesmile