Guest User

Untitled

a guest
Jan 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. public class FoodAdapter extends ArrayAdapter<Object> {
  2.  
  3. private ArrayList<Fruit> fruits;
  4. private ArrayList<Vegetable> vegetables;
  5.  
  6. public FoodAdapter(Context context) {
  7. super(context, R.layout.list_header);
  8. }
  9.  
  10. public void setFruits(Fruit[] fruits) {
  11. this.fruits = new ArrayList<>(Arrays.asList(fruits));
  12. updateData();
  13. }
  14.  
  15. public void setVegetables(Vegetable[] vegetables) {
  16. this.vegetables = new ArrayList<>(Arrays.asList(vegetables));
  17. updateData();
  18. }
  19.  
  20. private void updateData() {
  21. clear();
  22.  
  23. if (fruits != null && fruits.size() > 0) {
  24. add("Fruits");
  25. addAll(fruits);
  26. }
  27.  
  28. if (vegetables != null && vegetables.size() > 0) {
  29. add("Vegetables");
  30. addAll(vegetables);
  31. }
  32. }
  33.  
  34. @Override
  35. public int getViewTypeCount() {
  36. return 3; // Fruit cells, vegetable cells and section headers.
  37. }
  38.  
  39. @Override
  40. public View getView(int position, View view, ViewGroup parent) {
  41. Object item = getItem(position);
  42.  
  43. if (item instanceof Fruit) {
  44. Fruit fruit = (Fruit) item;
  45. FruitCell cell;
  46.  
  47. if (view == null || !(view instanceof FruitCell)) {
  48. LayoutInflater inflater = LayoutInflater.from(getContext());
  49. cell = (FruitCell) inflater.inflate(R.layout.cell_fruit, parent, false);
  50. } else {
  51. cell = (FruitCell) view;
  52. }
  53.  
  54. cell.setContent(fruit);
  55.  
  56. return cell;
  57. } else if (item instanceof Vegetable) {
  58. Vegetable vegetable = (Vegetable) item;
  59. VegetableCell cell;
  60.  
  61. if (view == null || !(view instanceof VegetableCell)) {
  62. LayoutInflater inflater = LayoutInflater.from(getContext());
  63. cell = (VegetableCell) inflater.inflate(R.layout.cell_vegetable, parent, false);
  64. } else {
  65. cell = (VegetableCell) view;
  66. }
  67.  
  68. cell.setContent(vegetable);
  69.  
  70. return cell;
  71. } else if (item instanceof String) {
  72. ListHeader header;
  73.  
  74. if (view == null || !(view instanceof ListHeader)) {
  75. LayoutInflater inflater = LayoutInflater.from(getContext());
  76. header = (ListHeader) inflater.inflate(R.layout.list_header, parent, false);
  77. } else {
  78. header = (ListHeader) view;
  79. }
  80.  
  81. header.setContent((String) item);
  82.  
  83. return header;
  84. }
  85.  
  86. return null;
  87. }
  88.  
  89. }
Add Comment
Please, Sign In to add comment