Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FoodAdapter extends ArrayAdapter<Object> {
- private ArrayList<Fruit> fruits;
- private ArrayList<Vegetable> vegetables;
- public FoodAdapter(Context context) {
- super(context, R.layout.list_header);
- }
- public void setFruits(Fruit[] fruits) {
- this.fruits = new ArrayList<>(Arrays.asList(fruits));
- updateData();
- }
- public void setVegetables(Vegetable[] vegetables) {
- this.vegetables = new ArrayList<>(Arrays.asList(vegetables));
- updateData();
- }
- private void updateData() {
- clear();
- if (fruits != null && fruits.size() > 0) {
- add("Fruits");
- addAll(fruits);
- }
- if (vegetables != null && vegetables.size() > 0) {
- add("Vegetables");
- addAll(vegetables);
- }
- }
- @Override
- public int getViewTypeCount() {
- return 3; // Fruit cells, vegetable cells and section headers.
- }
- @Override
- public View getView(int position, View view, ViewGroup parent) {
- Object item = getItem(position);
- if (item instanceof Fruit) {
- Fruit fruit = (Fruit) item;
- FruitCell cell;
- if (view == null || !(view instanceof FruitCell)) {
- LayoutInflater inflater = LayoutInflater.from(getContext());
- cell = (FruitCell) inflater.inflate(R.layout.cell_fruit, parent, false);
- } else {
- cell = (FruitCell) view;
- }
- cell.setContent(fruit);
- return cell;
- } else if (item instanceof Vegetable) {
- Vegetable vegetable = (Vegetable) item;
- VegetableCell cell;
- if (view == null || !(view instanceof VegetableCell)) {
- LayoutInflater inflater = LayoutInflater.from(getContext());
- cell = (VegetableCell) inflater.inflate(R.layout.cell_vegetable, parent, false);
- } else {
- cell = (VegetableCell) view;
- }
- cell.setContent(vegetable);
- return cell;
- } else if (item instanceof String) {
- ListHeader header;
- if (view == null || !(view instanceof ListHeader)) {
- LayoutInflater inflater = LayoutInflater.from(getContext());
- header = (ListHeader) inflater.inflate(R.layout.list_header, parent, false);
- } else {
- header = (ListHeader) view;
- }
- header.setContent((String) item);
- return header;
- }
- return null;
- }
- }
Add Comment
Please, Sign In to add comment