Hi all , hope you all are doing well.

Problem is that in Expandable ListView , i am using two imgButtons in childVIew for adding item and subtracting them , but when i click on one childView's buttons it changes its value but it saves its value for other childViews as well. Look image.      
                            /images/forum/upload/2015-06-13/b3230b4e68ae9740784b13ab3561f26b.png 
if i add two Veggie Burger then i click Cheese burger it will show me '3' it is adding subtracting from previous child Text value. Kindly help me.

My Adapter code.


public class ExpandableListAdapter extends BaseExpandableListAdapter {
class ViewHolder {
protected TextView txtPizzaName,txtPizzaCount,txtPizzaPrice;
ImageButton btnMinus, btnPlus;
}

    private Context _context;
    private List _listDataHeader;
    int ItemCounter=0,PriceCounter=0;

    private HashMap _listDataChild;
 
    public ExpandableListAdapter(Context context, List listDataHeader, HashMap listChildData) {
        this._context = context;
        this._listDataHeader = listDataHeader;
        this._listDataChild = listChildData;
    }
 
    @Override
    public Object getChild(int groupPosition, int childPosititon) {
        return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.get(childPosititon);
    }
 
    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }
 
    @Override
    public View getChildView(final int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
     
        final String childText = (String) getChild(groupPosition, childPosition);
          
        View v = null;
        LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       
v = infalInflater.inflate(R.layout.list_item_child, parent, false);
       
        final ViewHolder viewHolder = new ViewHolder();

        viewHolder.txtPizzaName = (TextView) v.findViewById(R.id.txtViewPizzaNameID);
        viewHolder.btnMinus = (ImageButton) v.findViewById(R.id.imgBtnMinusID);
        viewHolder.btnPlus = (ImageButton) v.findViewById(R.id.imgBtnPlusID);
        viewHolder.txtPizzaPrice = (TextView) v.findViewById(R.id.txtViewPizzaPriceID);
        viewHolder.txtPizzaCount = (TextView) v.findViewById(R.id.txtViewPizzaCountID);
       
        viewHolder.btnMinus.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
ItemCounter--;
PriceCounter = PriceCounter-3;
viewHolder.txtPizzaCount.setText(""+ItemCounter);
viewHolder.txtPizzaPrice.setText("$"+PriceCounter+".00");
}
});
 
        viewHolder.btnPlus.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
ItemCounter++;
PriceCounter = PriceCounter+3;
//i think prob is here
viewHolder.txtPizzaCount.setText(""+ItemCounter);
viewHolder.txtPizzaPrice.setText("$"+PriceCounter+".00");
}
});
        
        v.setTag(viewHolder);
        ViewHolder holder = (ViewHolder) v.getTag();
        
        holder.txtPizzaName.setText(childText);
       return v;
    }
 
    @Override
    public int getChildrenCount(int groupPosition) {
        return this._listDataChild.get(this._listDataHeader.get(groupPosition)).size();
    }
 
    @Override
    public Object getGroup(int groupPosition) {
        return this._listDataHeader.get(groupPosition);
    }
 
    @Override
    public int getGroupCount() {
        return this._listDataHeader.size();
    }
 
    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }
    
    @Override
    public void onGroupCollapsed(int groupPosition) {
        super.onGroupCollapsed(groupPosition);
    }
 @Override
    public void onGroupExpanded(int groupPosition) {
        super.onGroupExpanded(groupPosition);
    }
 
  @Override
    public boolean hasStableIds() {
        return false;
    }
 
    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
}

Please HELP...!