コード例 #1
0
  @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;
  }