0

내가 어디로 잘못 가고 있는지 알 수 없습니다. 피카소에서 이미지를로드하고 싶습니다. 탭 중 하나에서 recycleview를 구현 중입니다.왜 ImageView가 채워지지 않고 탭 레이아웃에서 cardview를 구현하려고합니까?

여기 내 recycleview 어댑터 코드 :

public class TrailerRecyclerViewAdapter extends RecyclerView.Adapter<TrailerRecyclerViewAdapter.ViewHolder> { 


private List<MovieTrailer> data; 
private Context context; 
private static final String preImgUrl = "http://img.youtube.com/vi/"; 


public TrailerRecyclerViewAdapter(List<MovieTrailer> list, Context context) { 
    this.data = list; 
    this.context = context; 
} 

@Override 
public TrailerRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.trailer_card, parent, false); 

    ViewHolder viewHolder = new ViewHolder(v); 

    return viewHolder; 
} 

@Override 
public void onBindViewHolder(TrailerRecyclerViewAdapter.ViewHolder holder, int position) { 
    Log.i("adapter", preImgUrl + data.get(position).getKey() + "/0.jpg"); 
    /*Picasso.with(context).load(preImgUrl + data.get(position).getKey() + "/0.jpg"). 
      placeholder(R.mipmap.ic_launcher). 
      error(R.mipmap.ic_launcher). 
      into(holder.trailer_thumbnail);*/ 
    holder.trailer_thumbnail.setImageResource(R.mipmap.ic_launcher); 
} 

@Override 
public int getItemCount() { 
    return 0; 
} 

public class ViewHolder extends RecyclerView.ViewHolder{ 

    ImageView trailer_thumbnail; 

    public ViewHolder(View itemview){ 
     super(itemview); 
     trailer_thumbnail = (ImageView) itemview.findViewById(R.id.trailer_thumbnail); 
    } 
} 

내가 다운로드 이미지 대신 중복 된 이미지를로드하려고했지만 너무 작동하지 않는. 여기

내 탭 단편 코드

public class Tab3Fragment extends Fragment { 

private ImageView trailer_thumbnail; 
private static List<MovieTrailer> movieTrailerList; 
private static final String preImgUrl = "http://img.youtube.com/vi/"; 
private ProgressDialog mProgressDialog; 
private static RecyclerView recyclerView; 
private static RecyclerView.Adapter adapter; 
private static RecyclerView.LayoutManager layoutManager; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.tab3_fragment, container, false); 
    recyclerView = (RecyclerView) rootView.findViewById(R.id.trailer_recycleview); 

    layoutManager = new LinearLayoutManager(getActivity()); 
    recyclerView.setLayoutManager(layoutManager); 


    updateTrailer(); 

    return rootView; 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
} 

private void updateTrailer(){ 
    mProgressDialog = new ProgressDialog(getContext()); 
    mProgressDialog.setIndeterminate(true); 
    mProgressDialog.setMessage("Loading..."); 
    mProgressDialog.show(); 
    Retrofit retrofit = new Retrofit.Builder(). 
      baseUrl(MainActivity.baseUrl). 
      addConverterFactory(GsonConverterFactory.create()). 
      build(); 

    final RequestInterface requestInterface = retrofit.create(RequestInterface.class); 

    Call<MovieTrailerResponse> call1 = requestInterface.getMovieTrailers(list.get(index).getId(), MainActivity.apiKEy); 

    call1.enqueue(new Callback<MovieTrailerResponse>() { 
     @Override 
     public void onResponse(Call<MovieTrailerResponse> call, Response<MovieTrailerResponse> response) { 

      movieTrailerList = response.body().getResults(); 
      Log.i("trailer", preImgUrl + movieTrailerList.get(0).getKey() + "/.jpg"); 
      adapter = new TrailerRecyclerViewAdapter(movieTrailerList, getContext()); 
      recyclerView.setAdapter(adapter); 
      /* 
      Picasso.with(getActivity()).load(preImgUrl + movieTrailerList.get(0).getKey() + "/0.jpg"). 
         placeholder(R.mipmap.ic_launcher). 
         error(R.mipmap.ic_launcher). 
         into(trailer_thumbnail);*/ 


      if (mProgressDialog.isShowing()) 
       mProgressDialog.dismiss(); 
     } 

     @Override 
     public void onFailure(Call<MovieTrailerResponse> call, Throwable t) { 
      if (mProgressDialog.isShowing()) 
       mProgressDialog.dismiss(); 
     } 
    }); 

} 

}

내가 어댑터를 만들려고하고 데이터를받은 후 onResponse에 어댑터를 설정하고,하지만 내가 잘못 가고 어디 알아낼 수 없습니까 ?

답변

1

문제는 어댑터의 getItemCount() 메서드에서 0을 반환하는 것입니다. 시도 :

public int getItemCount() { 
    return movieTrailerList.size(); 
}