package what.whatandroid.artist; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.TextView; import api.torrents.artist.SimilarArtists; import what.whatandroid.R; import what.whatandroid.callbacks.ViewArtistCallbacks; /** * Adapter for displaying the list of similar artists */ public class SimilarArtistAdapter extends ArrayAdapter<SimilarArtists> implements AdapterView.OnItemClickListener { private final LayoutInflater inflater; private final ViewArtistCallbacks viewArtist; public SimilarArtistAdapter(Context context){ super(context, R.layout.list_similar_artist); inflater = LayoutInflater.from(context); try { viewArtist = (ViewArtistCallbacks)context; } catch (ClassCastException e){ throw new ClassCastException(context.toString() + " must implement ViewArtistCallbacks"); } } @Override public View getView(int position, View convertView, ViewGroup parent){ ViewHolder holder; if (convertView != null){ holder = (ViewHolder)convertView.getTag(); } else { convertView = inflater.inflate(R.layout.list_similar_artist, parent, false); holder = new ViewHolder(); holder.artist = (TextView)convertView.findViewById(R.id.artist); convertView.setTag(holder); } holder.artist.setText(getItem(position).getName()); return convertView; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id){ //Account for the header view throwing off position by 1 viewArtist.viewArtist(getItem(position - 1).getArtistId().intValue()); } private static class ViewHolder { public TextView artist; } }