为什么 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();
}
我无法弄清楚我哪里出错了。我想从毕加索加载图像。我正在其中一个选项卡中实施回收视图。
这是我的 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();
}