设置计数器时发出问题

时间:2016-08-23 07:23:00

标签: android

我想在每个BDE的灰色阴影Textview中设置一个计数器。点击BDE的名称将显示在该特定BDE下有多少成员正在工作。但我无法在灰色阴影Textview中设置计数器。在我的情况下,BDE名称Madhu显示3次。但我不需要这个。 3将以灰色阴影Textview显示。

enter image description here

适配器类:

public class PendingViewAdapter extends 

RecyclerView.Adapter<PendingViewHolders> {

    private List<PendingBO> itemList;
    private Context context;
    private int count=0;

    public PendingViewAdapter(Context context, List<PendingBO> itemList) {
        this.itemList = itemList;
        this.context = context;
    }

    @Override
    public PendingViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {

        View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.pending_approval_row, null);
        PendingViewHolders rcv = new PendingViewHolders(layoutView);
        return rcv;
    }

    @Override
    public void onBindViewHolder(PendingViewHolders holder, int position) {
        final PendingBO pendingBO = itemList.get(position);
        holder.txtOne.setText("BDE Name" + " : " + pendingBO.getEmpName());
     //   holder.txtRed.setText(pendingBO.getStatus());
        holder.cardView.setCardBackgroundColor(Color.parseColor("#ffffff"));
        holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ShowLeadDetails(pendingBO);
            }
        });
    }


    public void ShowLeadDetails(PendingBO pendingBO){
        Intent intent = new Intent(context, LeadDetailsActivity.class);
        AppController.getInstance().pendingBO = pendingBO;
     //   context.startActivity(intent);
        ((Activity) context).startActivityForResult(intent,0);
        ((Activity) context).finish();
    }
    @Override
    public int getItemCount() {
        return this.itemList.size();
    }
}

1 个答案:

答案 0 :(得分:1)

我会制作一个中间列表,我会搜索双打。每次找到一个双,删除双倍并增加原始计数器。完成此例程后,将List复制到实际的itemList。

当然也可以在itemList本身上进行。可能具有效率优势,我会先做中间列表,以便...更容易思考和分类步骤。

快速而肮脏的解决方案:

this.interList = itemList;
int i = 0;
while(i<this.interList.size()){
    int j = 1;
    while(j<this.interList.size()){
        if(interList.get(i).Equals(interList.get(j)){
            interList.remove(j);
            interList.get(i).counter++;
        } else j++;
    }
}
this.itemList = this.interList;

事实证明,你确实可以在没有任何中间名单的情况下这样做。