为什么 ImageView 没有填充,试图在选项卡布局中实现 cardview?

Why ImageView isn't getting populated, trying to implement cardview in tab layout?

我无法弄清楚我哪里出错了。我想从毕加索加载图像。我正在其中一个选项卡中实施回收视图。

这是我的 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 中设置适配器,但我无法弄清楚我哪里出错了?

我认为问题是您在适配器的 getItemCount() 方法中返回了 0。尝试:

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