public int compare(RowItem value1, RowItem value2) {
   Date date1 = null;
   Date date2 = null;
   try {
     date1 = dateFormat.parse(value1.getDate());
     date2 = dateFormat.parse(value2.getDate());
   } catch (ParseException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   return (date1.getTime() > date2.getTime() ? -1 : 1); // descending
 }
    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
      FilterResults filterResults = new FilterResults();
      if (constraint != null && constraint.length() > 0) {
        ArrayList<RowItem> tempList = new ArrayList<RowItem>();

        // search content in friend list
        for (RowItem user : commodityDetails) {
          if (user.getCommodityName().toLowerCase().contains(constraint.toString().toLowerCase())) {
            tempList.add(user);
          } else if (user.getVarietyName()
              .toLowerCase()
              .contains(constraint.toString().toLowerCase())) {
            tempList.add(user);
          } else if (user.getPrice().toLowerCase().contains(constraint.toString().toLowerCase())) {
            tempList.add(user);
          } else if (user.getDate().toLowerCase().contains(constraint.toString().toLowerCase())) {
            tempList.add(user);
          } else if (user.getDate().toLowerCase().contains(constraint.toString().toLowerCase())) {
            tempList.add(user);
          } else {
          }
        }

        filterResults.count = tempList.size();
        filterResults.values = tempList;
      } else {
        filterResults.count = commodityDetails.size();
        filterResults.values = commodityDetails;
      }

      return filterResults;
    }
  /** List view preparation */
  public View getView(int position, View convertView, ViewGroup parent) {

    final ViewHolder holder;
    final RowItem rowItem = (RowItem) getItem(position);

    convertView = null;
    if (convertView == null) {
      LayoutInflater mInflater =
          (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

      convertView = mInflater.inflate(R.layout.commodity_details_row, parent, false);

      holder = new ViewHolder();
      holder.commodityName = (TextView) convertView.findViewById(R.id.commodityname);
      holder.varietyName = (TextView) convertView.findViewById(R.id.varietyname);
      holder.date = (TextView) convertView.findViewById(R.id.date);
      holder.price = (TextView) convertView.findViewById(R.id.price);
      holder.unit = (TextView) convertView.findViewById(R.id.unit);
      holder.id = (TextView) convertView.findViewById(R.id.id);
      holder.mainCategory = (TextView) convertView.findViewById(R.id.mainCategory);
      holder.unitTagVALue = (TextView) convertView.findViewById(R.id.unitTypeTagValue);
      holder.offer = (ImageView) convertView.findViewById(R.id.imageoffer);
      holder.priceHideOrShow = (ImageView) convertView.findViewById(R.id.imageHideShow);
      holder.commodityImage = (ImageView) convertView.findViewById(R.id.list_commodity_image);
      holder.discountPrice = (TextView) convertView.findViewById(R.id.discountPrice);
      holder.quantity = (TextView) convertView.findViewById(R.id.quantity);
      holder.discountInPercentage = (TextView) convertView.findViewById(R.id.discountInPercentage);

      typeface = Typeface.createFromAsset(context.getAssets(), "fonts/Sanchez-Regular_0.ttf");
      holder.commodityName.setTypeface(typeface);
      holder.varietyName.setTypeface(typeface);
      holder.date.setTypeface(typeface);
      holder.price.setTypeface(typeface);
      holder.unit.setTypeface(typeface);
      holder.id.setTypeface(typeface);
      holder.discountPrice.setTypeface(typeface);
      holder.quantity.setTypeface(typeface);
      holder.discountInPercentage.setTypeface(typeface);

      convertView.setTag(holder);
    } else {
      holder = (ViewHolder) convertView.getTag();
    }
    /*try
    {
    	if (Build.VERSION.SDK_INT >= 16) {

    		userId.setBackground(customBg);
    		password.setBackground(customBg);

    	} else {

    		userId.setBackgroundDrawable(customBg);
    		password.setBackgroundDrawable(customBg);
    	}
    }
    catch (Exception e) {

    	Toast.makeText(getActivity(), "Something wrong..", Toast.LENGTH_LONG).show();


    }*/
    if (rowItem.getStatusPrice() != null && rowItem.getStatusPrice().equalsIgnoreCase("Hide")) {
      /*	holder.priceHideOrShow.setBackground(context.getResources()
      .getDrawable(R.drawable.hide2));*/

      if (Build.VERSION.SDK_INT >= 16) {
        holder.priceHideOrShow.setBackground(context.getResources().getDrawable(R.drawable.hide2));
      } else {

        holder.priceHideOrShow.setBackgroundDrawable(
            context.getResources().getDrawable(R.drawable.hide2));
      }

    } else {
      /*holder.priceHideOrShow.setBackground(context.getResources()
      .getDrawable(R.drawable.show2));*/
      if (Build.VERSION.SDK_INT >= 16) {
        holder.priceHideOrShow.setBackground(context.getResources().getDrawable(R.drawable.show2));
      } else {

        holder.priceHideOrShow.setBackgroundDrawable(
            context.getResources().getDrawable(R.drawable.show2));
      }
    }

    holder.unitTagVALue.setText(rowItem.getUnitTag());
    holder.commodityName.setText(rowItem.getCommodityName());
    holder.varietyName.setText(rowItem.getVarietyName());
    holder.date.setText(rowItem.getDate());
    holder.mainCategory.setText(rowItem.getMainCategory());
    holder.price.setText(rupeeSymbol + rowItem.getPrice());
    holder.unit.setText(rowItem.getUnit());
    holder.id.setText(rowItem.getId());
    holder.discountPrice.setText(rupeeSymbol + rowItem.getDiscountPrice());
    holder.discountInPercentage.setText(rowItem.getDiscountInPercentage() + " %");

    if (!rowItem.getDiscountInPercentage().equalsIgnoreCase("No discount")) {

      holder.price.setPaintFlags(holder.price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
      holder.offer.setVisibility(View.VISIBLE);
      holder.discountInPercentage.setVisibility(View.VISIBLE);
      holder.price.setVisibility(View.VISIBLE);

    } else {
      holder.price.setPaintFlags(0);
      holder.offer.setVisibility(View.GONE);
      holder.price.setVisibility(View.GONE);
      holder.discountInPercentage.setVisibility(View.GONE);
    }

    holder.commodityImage.setTag(rowItem.getImageURL());
    BitmapManager.INSTANCE.loadBitmap(rowItem.getImageURL(), holder.commodityImage, 200, 200);

    holder.priceHideOrShow.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {

            try {

              if (rowItem.getStatusPrice().equalsIgnoreCase("Hide")) {

                listener.DoTaskCompleted(
                    rowItem.getId().toString(), CommodityDetailsActivity.VENDOR_ID, "Show");
              } else {

                listener.DoTaskCompleted(
                    rowItem.getId().toString(), CommodityDetailsActivity.VENDOR_ID, "Hide");
              }

            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        });

    holder.commodityImage.setOnClickListener(
        new OnClickListener() {

          public void onClick(View v) {

            if (holder.commodityImage != null) {
              BitmapDrawable drawable = (BitmapDrawable) holder.commodityImage.getDrawable();
              Bitmap bitmap = drawable.getBitmap();

              maximizeImage(bitmap);
            }
          }
        });

    return convertView;
  }