package br.com.while42.rpgcs.adapter; import java.util.List; import android.content.Context; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import br.com.while42.rpgcs.R; import br.com.while42.rpgcs.model.character.Characteristics; import br.com.while42.rpgcs.model.character.RpgCharacter; import br.com.while42.rpgcs.model.character.RpgClass; import br.com.while42.rpgcs.model.classes.AbstractRpgClass; public class ListCharacterAdapter extends BaseAdapter { private Context context; private List<RpgCharacter> rpgCharacters; public ListCharacterAdapter(Context context, List<RpgCharacter> rpgCharacters) { this.context = context; this.rpgCharacters = rpgCharacters; } public void setList(List<RpgCharacter> rpgCharacters) { this.rpgCharacters = rpgCharacters; } @Override public int getCount() { return rpgCharacters.size(); } @Override public Object getItem(int position) { return rpgCharacters.get(position); } @Override public long getItemId(int position) { return rpgCharacters.get(position).getId(); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = View.inflate(context, R.layout.part_play_list_characters, null); RpgCharacter character = rpgCharacters.get(position); Log.d("DEBUG", "ListCharacterAdapter - getView - RpgCharacter [id]: " + character.getId()); TextView name = (TextView) row.findViewById(R.id.textview_name); TextView race = (TextView) row.findViewById(R.id.textview_race); TextView alignment = (TextView) row.findViewById(R.id.textview_alignment); TextView experience = (TextView) row.findViewById(R.id.textview_experience); TextView classes = (TextView) row.findViewById(R.id.textview_classes); Characteristics characteristics = character.getCharacteristics(); if (characteristics != null) { name.setText(characteristics.getName()); race.setText(context.getString(characteristics.getRace().getCodeName())); alignment.setText(context.getString(characteristics.getAlignment().getCodeName())); } RpgClass rpgClasses = character.getRpgClasses(); if (rpgClasses != null) { experience.setText(rpgClasses.getExperience().toString()); StringBuilder sbClassLevel = new StringBuilder(); for (AbstractRpgClass clazz : rpgClasses.getAll()) { if (sbClassLevel.length() > 0) { sbClassLevel.append(" / "); } sbClassLevel.append(context.getString(clazz.getCodeName())); sbClassLevel.append(" ("); sbClassLevel.append(clazz.getClassLevel().toString()); sbClassLevel.append(")"); } classes.setText(sbClassLevel.toString()); } return row; } }