package com.android.iliConnect; import java.util.List; import com.android.iliConnect.models.Item; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.TextView; public class ItemArrayAdapter extends ArrayAdapter<Item> { private class DesktopViews { TextView title; TextView description; TextView date; LinearLayout items; } public ItemArrayAdapter(Context context, int textViewResourceId) { super(context, textViewResourceId); } private List<Item> items; public ItemArrayAdapter(Context context, int textViewResourceId, List<Item> items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; LayoutInflater vi = (LayoutInflater) MainActivity.instance.getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = fillListRecursive(null, items.get(position), vi); return v; } public LinearLayout fillListRecursive(LinearLayout v, Item item, LayoutInflater vi) { DesktopViews desktopViews = new DesktopViews(); if (v == null) { v = (LinearLayout) vi.inflate(R.layout.item, null); desktopViews = new DesktopViews(); desktopViews.title = (TextView) v.findViewById(R.id.itemTitle); desktopViews.description = (TextView) v.findViewById(R.id.itemDescription); desktopViews.date = (TextView) v.findViewById(R.id.itemDate); v.setTag(desktopViews); } else desktopViews = (DesktopViews) v.getTag(); desktopViews.title.setText(item.getTitle()); desktopViews.description.setText(item.getDescription()); if (item.getItems() != null) { for (Item childItem : item.getItems()) v = fillListRecursive(desktopViews.items, childItem, vi); } return v; } }