我可以在另一个类/活动中使用ItemCount()方法的值吗?

recyclerView的ItemCount方法是:

@Override
public int getItemCount() {
    Log.e("Notification Size is ",String.valueOf(slideshowModelList.size()));

    return slideshowModelList.size();
}

LogOutput为:8

这是我完整的适配器类代码:

public class SlideShowAdapter extends RecyclerView.Adapter<SlideShowAdapter.ViewHolder> {

Context context;
List<SlideshowModel> slideshowModelList;

public SlideShowAdapter(Context context,List<SlideshowModel> slideshowModelList) {
    this.context = context;
    this.slideshowModelList = slideshowModelList;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.custom_layout_notifications,parent,false);
    ViewHolder  viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder,int position) {
    SlideshowModel slideshowModel = slideshowModelList.get(position);
    Picasso.get().load(slideshowModel.getImage()).fit().centerCrop().placeholder(R.drawable.placeholders).into(holder.image);
    holder.title.setText(slideshowModel.getTitle());
    holder.description.setText(slideshowModel.getDesc());
    holder.date.setText(slideshowModel.getDate());

    if (getItemCount() !=1){
        holder.notif_icon.setVisibility(View.VISIBLE);
    }
    else{
        holder.notif_icon.setVisibility(View.GONE);
    }
}

@Override
public int getItemCount() {
    Log.e("Notification Size is ",String.valueOf(slideshowModelList.size()));

    return slideshowModelList.size();
}

class ViewHolder extends RecyclerView.ViewHolder{
    ImageView image,notif_icon;
    TextView title,description,date;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        image= itemView.findViewById(R.id.imagecontent);
        title = itemView.findViewById(R.id.title);
        description = itemView.findViewById(R.id.desc);
        date= itemView.findViewById(R.id.date);
        notif_icon= itemView.findViewById(R.id.notif_icon);

    }
}
}

我可以在另一个与recyclerView的父类无关的类/活动中使用此getItemCount()值吗?

  

编辑:   在我的Mainactivity中,收到的值为:

     

E /通知大小为:0

     

在我的RecyclerView活动中,我的价值是:   E /通知大小为:2

maxwel112 回答:我可以在另一个类/活动中使用ItemCount()方法的值吗?

尝试

SlideShowAdapter  adpater=new SlideShowAdapter(context,list);
int count=adapter.getItemCount();
,

按如下所示更改适配器

@Around("execution(void org.springframework.batch.core.repository.JobRepository.update*(..))")
    public void retry(ProceedingJoinPoint joinPoint) throws Throwable {
        jobRepoRetryTemplate.execute(retryContext -> {
            try {
                joinPoint.proceed();
            } catch (TransactionException e) {
                log.error("Retry={},exception occurred:",retryContext.getRetryCount(),e);
                throw e;
            } catch (Exception e) {
                log.error("Retry={},no next retry for exception occurred:",e);
            }
            return null;
        });
    }

在活动中实现ListSize界面

public class SlideShowAdapter extends RecyclerView.Adapter<SlideShowAdapter.ViewHolder> {

Context context;
List<SlideshowModel> slideshowModelList;
ListSize listSize;

public SlideShowAdapter(Context context,List<SlideshowModel> slideshowModelList,ListSize listSize) {
    this.context = context;
    this.slideshowModelList = slideshowModelList;
    this.listSize = listSize;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.custom_layout_notifications,parent,false);
    ViewHolder  viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder,int position) {
    SlideshowModel slideshowModel = slideshowModelList.get(position);
    Picasso.get().load(slideshowModel.getImage()).fit().centerCrop().placeholder(R.drawable.placeholders).into(holder.image);
    holder.title.setText(slideshowModel.getTitle());
    holder.description.setText(slideshowModel.getDesc());
    holder.date.setText(slideshowModel.getDate());

    if (getItemCount() !=1){
        holder.notif_icon.setVisibility(View.VISIBLE);
    }
    else{
        holder.notif_icon.setVisibility(View.GONE);
    }
}

@Override
public int getItemCount() {
    Log.e("Notification Size is ",String.valueOf(slideshowModelList.size()));
    listSize.itemCount(slideshowModelList.size());
    return slideshowModelList.size();
}

class ViewHolder extends RecyclerView.ViewHolder{
    ImageView image,notif_icon;
    TextView title,description,date;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        image= itemView.findViewById(R.id.imagecontent);
        title = itemView.findViewById(R.id.title);
        description = itemView.findViewById(R.id.desc);
        date= itemView.findViewById(R.id.date);
        notif_icon= itemView.findViewById(R.id.notif_icon);

    }
  }
  interface ListSize{
     void itemCount(int size);
  }
}
本文链接:https://www.f2er.com/3161525.html

大家都在问