@Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { switch (getItemViewType(position)) { case ITEM_TYPE_VIEW: { convertView = (ItemListItem) inflater.inflate(R.layout.item_listitem_view, parent, false); ViewHolder holder = new ViewHolder(); holder.text1 = (TextView) convertView.findViewById(android.R.id.text1); holder.text2 = (TextView) convertView.findViewById(android.R.id.text2); holder.text3 = (TextView) convertView.findViewById(R.id.text3); holder.icon1 = (ImageView) convertView.findViewById(android.R.id.icon1); holder.flip = (FlipImageView) convertView.findViewById(android.R.id.icon1); holder.icon2 = (ImageView) convertView.findViewById(android.R.id.icon2); holder.icon_chain_bottom = (ImageView) convertView.findViewById(R.id.icon_chain_bottom); holder.icon_chain_top = (ImageView) convertView.findViewById(R.id.icon_chain_top); convertView.setTag(holder); break; } case ITEM_TYPE_EDIT: { convertView = (ItemListItem) inflater.inflate(R.layout.item_listitem_equippeditem, parent, false); ViewHolder holder = new ViewHolder(); holder.text1 = (TextView) convertView.findViewById(android.R.id.text1); holder.text2 = (TextView) convertView.findViewById(android.R.id.text2); holder.text3 = (TextView) convertView.findViewById(R.id.text3); holder.icon1 = (ImageView) convertView.findViewById(android.R.id.icon1); holder.icon2 = (ImageView) convertView.findViewById(android.R.id.icon2); holder.icon_chain_bottom = (ImageView) convertView.findViewById(R.id.icon_chain_bottom); holder.icon_chain_top = (ImageView) convertView.findViewById(R.id.icon_chain_top); convertView.setTag(holder); break; } case ITEM_TYPE_SEEK: { convertView = (ViewGroup) inflater.inflate(R.layout.item_listitem_seek, parent, false); SeekViewHolder viewHolder = new SeekViewHolder(); viewHolder.seek = (SeekBarEx) convertView.findViewById(R.id.wheel); viewHolder.text = (TextView) convertView.findViewById(R.id.wheel_label); viewHolder.value = (Button) convertView.findViewById(R.id.wheel_value); convertView.setTag(viewHolder); break; } case ITEM_TYPE_COMBAT_TALENT: case ITEM_TYPE_SIMPLE_TALENT: { convertView = inflater.inflate(R.layout.item_listitem_talent, parent, false); TalentViewHolder holder = new TalentViewHolder(); // name holder.text1 = (TextView) convertView.findViewById(R.id.talent_list_item_text1); // be holder.text2 = (TextView) convertView.findViewById(R.id.talent_list_item_text2); // probe holder.text3 = (TextView) convertView.findViewById(R.id.talent_list_item_text3); // value / at holder.text4 = (TextView) convertView.findViewById(R.id.talent_list_item_text4); // pa holder.text5 = (TextView) convertView.findViewById(R.id.talent_list_item_text5); holder.indicator = (ImageView) convertView.findViewById(R.id.talent_list_item_indicator); convertView.setTag(holder); break; } case ITEM_TYPE_MODIFIER: { // We need the layoutinflater to pick up the view from xml // Pick up the TwoLineListItem defined in the xml file convertView = inflater.inflate(R.layout.item_listitem_modifier, parent, false); ModifierViewHolder holder = new ModifierViewHolder(); holder.text1 = (TextView) convertView.findViewById(android.R.id.text1); holder.text2 = (TextView) convertView.findViewById(android.R.id.text2); holder.flip = (FlipImageView) convertView.findViewById(android.R.id.icon1); holder.active = (CheckBox) convertView.findViewById(R.id.active); convertView.setTag(holder); break; } case ITEM_TYPE_HEADER: { convertView = inflater.inflate(R.layout.item_listitem_header, parent, false); HeaderViewHolder holder = new HeaderViewHolder(); holder.text1 = (TextView) convertView.findViewById(android.R.id.text1); convertView.setTag(holder); break; } case ITEM_TYPE_NOTES: { convertView = inflater.inflate(R.layout.item_listitem_event, parent, false); EventViewHolder holder = new EventViewHolder(); holder.text1 = (TextView) convertView.findViewById(android.R.id.text1); holder.text2 = (TextView) convertView.findViewById(android.R.id.text2); holder.text3 = (TextView) convertView.findViewById(R.id.text3); holder.flip = (FlipImageView) convertView.findViewById(android.R.id.icon1); holder.icon2 = (ImageView) convertView.findViewById(android.R.id.icon2); convertView.setTag(holder); break; } case ITEM_TYPE_PURSE: convertView = inflater.inflate(R.layout.item_listitem_purse, parent, false); PurseViewHolder holder = new PurseViewHolder(); holder.currencySpinner = (Spinner) convertView.findViewById(R.id.sp_currency); holder.header = (TextView) convertView.findViewById(R.id.tv_currency_header); holder.picker = new NumberPicker[4]; holder.picker[0] = (NumberPicker) convertView.findViewById(R.id.popup_purse_dukat); holder.picker[1] = (NumberPicker) convertView.findViewById(R.id.popup_purse_silver); holder.picker[2] = (NumberPicker) convertView.findViewById(R.id.popup_purse_heller); holder.picker[3] = (NumberPicker) convertView.findViewById(R.id.popup_purse_kreuzer); holder.labels = new TextView[4]; holder.labels[0] = (TextView) convertView.findViewById(R.id.tv_currency1); holder.labels[1] = (TextView) convertView.findViewById(R.id.tv_currency2); holder.labels[2] = (TextView) convertView.findViewById(R.id.tv_currency3); holder.labels[3] = (TextView) convertView.findViewById(R.id.tv_currency4); convertView.setTag(holder); break; } } FlippableViewHolder.prepare(position, convertView, (ListView) parent); Listable item = getItem(position); if (item instanceof EquippedItem) { convertView = prepareView((EquippedItem) item, position, convertView, parent); } else if (item instanceof Attribute) { convertView = prepareView((Attribute) item, position, convertView, parent); } else if (item instanceof Talent) { convertView = prepareView((Talent) item, position, convertView, parent); } else if (item instanceof Spell) { convertView = prepareView((Spell) item, position, convertView, parent); } else if (item instanceof Art) { convertView = prepareView((Art) item, position, convertView, parent); } else if (item instanceof Modificator) { convertView = prepareView((Modificator) item, position, convertView, parent); } else if (item instanceof HeaderListItem) { convertView = prepareView((HeaderListItem) item, position, convertView, parent); } else if (item instanceof FileListable) { convertView = prepareView((FileListable) item, position, convertView, parent); } else if (item instanceof NotesItem) { convertView = prepareView((NotesItem) item, position, convertView, parent); } else if (item instanceof PurseListable) { convertView = prepareView((PurseListable) item, position, convertView, parent); } if (item instanceof Markable) { Util.applyRowStyle((Markable) item, convertView, position); } else { Util.applyRowStyle(convertView, position); } return convertView; }