2016-08-23 89 views
0

我想为每个BDE的灰色阴影文本视图中设置一个计数器。点击BDE的名称,有多少成员在特定的BDE下工作,将会看到。但我无法在灰色阴影的Textview中设置计数器。在我的例子中,BDE名称Madhu显示3次,但我不需要这个。 3将在灰色阴影文本视图中显示。设置计数器时出现问题

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(); 
    } 
} 
+0

也许''BDE名称“+”:“+ position'?这取决于你的目标是什么.....我不明白你想要得到什么.... – Opiatefuchs

+0

我附上了一个图像,马杜将要显示三次。但我不想那样。 “BDE名称:Madhu”只会显示一次,3将显示在灰盒(TextView)中。怎么做? – anu208

+0

下面发布了一个解决方案,它工作? – Squirrelkiller

回答

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; 

事实证明,你的确可以做到这一点,没有任何中间列表。

+0

它完美的工作......它拯救了我的一天......非常感谢...... :) – anu208