我在使用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);
}
}
}
答案 0 :(得分:1)
问题在这里
您永远不会在 RecyclerView
中获得任何物品,因为您在getItemCount
@Override
public int getItemCount()
{
//return 0 ?
return 0;
}
更改
@Override
public int getItemCount()
{
return mPopulars.size();
}
getItemCount
int getItemCount ()
返回适配器保存的数据集中的项目总数。
答案 1 :(得分:0)
尝试此解决方案
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);
}
答案 2 :(得分:0)
优化@Ashwin solanki答案
更改以下代码
@Override
public int getItemCount()
{
//return 0 ?
return 0;
}
到
@Override
public int getItemCount()
{
//return 0 ?
if(mPopulars != null) {
return mPopulars.size();
}
return 0;
}
说明:调用onCreateViewHolder和onBindViewHolder方法获取由getItemCount方法返回的计数。由于您的代码始终返回0,因此不会调用这些方法,也不会在UI上填充list。
另外,从onBindViewHolder方法的代码中检查以下行:
ImageViewHolder.prodName.setText(popularCur.getProduc_name());
您正在考虑将'ImageViewHolder'类的'prodName'变量视为静态变量,但并非如此。相反,应该是
holder.prodName.setText(popularCur.getProduc_name());