我在使用viewGroup时遇到了问题,由于某种原因,id不能处理语句,我真的试过了所有的方法,你能帮我吗?
我不知道是version3.3.2的问题,还是代码出了什么问题
public class popularAdapter extends RecyclerView.Adapter<popularAdapter.ImageViewHolder> {
private Context mContext;
private List<popular> mPopulars;
public popularAdapter (Context context,List<popular>populars){
mContext=context;
mPopulars=populars;
}
@Override
public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//HERE IS THE ISSUE
View v= LayoutInflater.from(mContext).inflate(R.layout.popular_item2,viewGroup,false);
return new ImageViewHolder(v);
}
@Override
public void onBindViewHolder(ImageViewHolder holder, int position) {
popular popularCur=mPopulars.get(position);
ImageViewHolder.prodName.setText(popularCur.getProduc_name());
}
@Override
public int getItemCount() {
return 0;
}
public class ImageViewHolder extends RecyclerView.ViewHolder {
public TextView prd_name;
public TextView prd_price;
public TextView prd_img;
public ImageViewHolder(View itemView) {
super(itemView);
prd_name =itemView.findViewById(R.id.prodName);
prd_price=itemView.findViewById(R.id.prodPrice);
prd_img =itemView.findViewById(R.id.prodImageHolder);
}
}
}发布于 2019-03-27 13:49:21
问题就在这里
因为在getItemCount中返回0,所以您永远不会在RecyclerView中获得任何项
@Override
public int getItemCount()
{
//return 0 ?
return 0;
}更改为
@Override
public int getItemCount()
{
return mPopulars.size();
}int getItemCount ()返回适配器保存的数据集中项的总数。
发布于 2019-03-27 13:45:22
尝试此解决方案
public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.popular_item2,viewGroup,false);
return new ImageViewHolder(v);
}发布于 2019-03-27 14:23:28
优化@Ashwin solanki答案
更改以下代码
@Override
public int getItemCount()
{
//return 0 ?
return 0;
}至
@Override
public int getItemCount()
{
//return 0 ?
if(mPopulars != null) {
return mPopulars.size();
}
return 0;
}描述:为getItemCount方法返回的count调用onCreateViewHolder和onBindViewHolder方法。因为你的代码总是返回0,所以这些方法不会被调用,列表也不会在UI上被填充。
另外,检查来自onBindViewHolder方法的代码中的以下代码行:
ImageViewHolder.prodName.setText(popularCur.getProduc_name());您正在将“ImageViewHolder”类的“prodName”变量视为静态变量,但它不是静态变量。相反,它应该是
holder.prodName.setText(popularCur.getProduc_name());https://stackoverflow.com/questions/55368939
复制相似问题