Skip to content

Instantly share code, notes, and snippets.

@IlyaEremin
Created October 7, 2013 06:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IlyaEremin/6863385 to your computer and use it in GitHub Desktop.
Save IlyaEremin/6863385 to your computer and use it in GitHub Desktop.
BasketListAdapter
package com.melikovivan.yummy;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
public class BasketListAdapter extends ArrayAdapter<BasketElement> {
public interface onChangeTotalPrice {
public void addToTotalPrice(float add);
public void subtractFromTotalPrice(float sub);
}
onChangeTotalPrice someEventListener;
public BasketListAdapter(Context context, int textViewResourceId,
List<BasketElement> objects) {
super(context, textViewResourceId, objects);
someEventListener = (onChangeTotalPrice) ((Activity)context);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = new BasketListElement(getContext());
(convertView.findViewById(R.id.minus_but))
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
BasketElement element = getItem(position);
if(element.getCount() > 1){
element.decreaseCount();
}
else {
remove(element);
}
BasketActivity.removeFoodFromBasket(
Integer.valueOf(element.getId()), getContext());
someEventListener.subtractFromTotalPrice(element.getPrice());
notifyDataSetChanged();
}
});
(convertView.findViewById(R.id.plus_but))
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
BasketElement element = getItem(position);
element.increaseCount();
BasketActivity.addFoodToBasket(
Integer.valueOf(element.getId()),
element.getTitle(), element.getPrice(),
getContext());
someEventListener.addToTotalPrice(element.getPrice());
notifyDataSetChanged();
}
});
((BasketListElement) convertView).showLayout(getItem(position));
return convertView;
}
class BasketListElement extends FrameLayout {
private final View usualLayout;
private final TextView tvTitle;
private final TextView tvCount;
private final TextView tvPrice;
private final ImageView ivlImage;
public BasketListElement(final Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
usualLayout = inflater.inflate(R.layout.basket_list_item, null);
addView(usualLayout);
tvTitle = (TextView) usualLayout.findViewById(R.id.food_title);
tvPrice = (TextView) usualLayout.findViewById(R.id.food_price);
tvCount = (TextView) usualLayout.findViewById(R.id.food_count);
ivlImage = (ImageView) usualLayout.findViewById(R.id.food_image);
}
public void showLayout(final BasketElement element) {
tvTitle.setText(element.getTitle());
tvCount.setText(String.valueOf(element.getCount()));
tvPrice.setText(String.valueOf(element.getPrice()*element.getCount()));
ivlImage.setImageBitmap(BitmapFactory
.decodeFile("/data/data/com.melikovivan.yummy/files/"
+ element.getId() + ".png"));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment