RecyclerView 不显示
RecyclerView not showing
我将 RecyclerView 与自定义适配器一起使用,但它没有显示数据。
适配器从数据库下载一些缩略图并从 Api 键获取标题和信息。
适配器的代码Class:
public class mostViewedAdapter extends RecyclerView.Adapter<mostViewedAdapter.ViewHolder> {
private List<String> fTitle;
private List<String> fInfos;
private List<String> thumbs;
public mostViewedAdapter(List<String> titoli, List<String> infos, List<String>thumbsUrl){
fTitle = titoli;
fInfos = infos;
thumbs = thumbsUrl;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView titleTextView;
public TextView infoTextView;
public ImageView thumbImageView;
public ViewHolder(View itemView) {
super(itemView);
titleTextView = (TextView) itemView.findViewById(R.id.title);
infoTextView = (TextView) itemView.findViewById(R.id.infos);
thumbImageView = (ImageView) itemView.findViewById(R.id.thumb);
}
}
@Override
public mostViewedAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View mvView = inflater.inflate(R.layout.most_viewed, parent, false);
ViewHolder viewHolder = new ViewHolder(mvView);
return viewHolder;
}
@Override
public void onBindViewHolder(mostViewedAdapter.ViewHolder holder, int position) {
String titolo = fTitle.get(position);
String info = fInfos.get(position);
String thumb = thumbs.get(position);
UrlGenerator url = new UrlGenerator(thumb);
Picasso.with(holder.thumbImageView.getContext()).load(url.generateImgUrl())
.resize(50,70).centerCrop().into(holder.thumbImageView);
holder.infoTextView.setText(info);
holder.titleTextView.setText(titolo);
TextView tvTitolo = holder.titleTextView;
TextView tvInfo = holder.infoTextView;
ImageView ivImage = holder.thumbImageView;
}
@Override
public int getItemCount() {
return 0;
}
}
回收者观点:
public void initUI() {
RecyclerView recList = (RecyclerView) findViewById(R.id.rvCinema);
recList.hasFixedSize();
mostViewedAdapter adapter = new mostViewedAdapter(titoli, info, thumbsUrl);
recList.setAdapter(adapter);
RecyclerView.LayoutManager lm = new LinearLayoutManager(this);
recList.setLayoutManager(lm);
}
请returnfTitle.size();
@Override
public int getItemCount() {
return fTitle.size();
}
这样试试:
MainActivity
public class MainActivity extends AppCompatActivity {
RecyclerView mRecyclerView;
mostViewedAdapter mViewAdapter;
//.... other elements
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView_ID);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
mViewAdapter= new mostViewedAdapter (listName, listInfo, listThumbs);
mRecyclerView.setAdapter(mViewAdapter);
}
}
适配器Class
而不是 return将 0 作为计数 return 三个列表中任何一个的数组大小。
@Override
public int getItemCount() {
return fTitle.size();
//return fInfos.size();
//return thumbs.size();
}
希望我有所帮助,如果仍然遇到任何问题,请 post logcat。
我将 RecyclerView 与自定义适配器一起使用,但它没有显示数据。 适配器从数据库下载一些缩略图并从 Api 键获取标题和信息。
适配器的代码Class:
public class mostViewedAdapter extends RecyclerView.Adapter<mostViewedAdapter.ViewHolder> {
private List<String> fTitle;
private List<String> fInfos;
private List<String> thumbs;
public mostViewedAdapter(List<String> titoli, List<String> infos, List<String>thumbsUrl){
fTitle = titoli;
fInfos = infos;
thumbs = thumbsUrl;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView titleTextView;
public TextView infoTextView;
public ImageView thumbImageView;
public ViewHolder(View itemView) {
super(itemView);
titleTextView = (TextView) itemView.findViewById(R.id.title);
infoTextView = (TextView) itemView.findViewById(R.id.infos);
thumbImageView = (ImageView) itemView.findViewById(R.id.thumb);
}
}
@Override
public mostViewedAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View mvView = inflater.inflate(R.layout.most_viewed, parent, false);
ViewHolder viewHolder = new ViewHolder(mvView);
return viewHolder;
}
@Override
public void onBindViewHolder(mostViewedAdapter.ViewHolder holder, int position) {
String titolo = fTitle.get(position);
String info = fInfos.get(position);
String thumb = thumbs.get(position);
UrlGenerator url = new UrlGenerator(thumb);
Picasso.with(holder.thumbImageView.getContext()).load(url.generateImgUrl())
.resize(50,70).centerCrop().into(holder.thumbImageView);
holder.infoTextView.setText(info);
holder.titleTextView.setText(titolo);
TextView tvTitolo = holder.titleTextView;
TextView tvInfo = holder.infoTextView;
ImageView ivImage = holder.thumbImageView;
}
@Override
public int getItemCount() {
return 0;
}
}
回收者观点:
public void initUI() {
RecyclerView recList = (RecyclerView) findViewById(R.id.rvCinema);
recList.hasFixedSize();
mostViewedAdapter adapter = new mostViewedAdapter(titoli, info, thumbsUrl);
recList.setAdapter(adapter);
RecyclerView.LayoutManager lm = new LinearLayoutManager(this);
recList.setLayoutManager(lm);
}
请returnfTitle.size();
@Override
public int getItemCount() {
return fTitle.size();
}
这样试试:
MainActivity
public class MainActivity extends AppCompatActivity {
RecyclerView mRecyclerView;
mostViewedAdapter mViewAdapter;
//.... other elements
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView_ID);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
mViewAdapter= new mostViewedAdapter (listName, listInfo, listThumbs);
mRecyclerView.setAdapter(mViewAdapter);
}
}
适配器Class
而不是 return将 0 作为计数 return 三个列表中任何一个的数组大小。
@Override
public int getItemCount() {
return fTitle.size();
//return fInfos.size();
//return thumbs.size();
}
希望我有所帮助,如果仍然遇到任何问题,请 post logcat。