package com.camilstaps.taize; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.List; /** * Adapter for listing Podcasts in a ListView * @author Camil Staps */ public class PodcastAdapter extends BaseAdapter { Context context; final List data; private static LayoutInflater inflater = null; /** * Start the default audio player when the user clicks on a podcast */ private View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse((String) v.getTag()), "audio/*"); context.startActivity(intent); } }; public PodcastAdapter(Context context, List data) { this.context = context; this.data = data; inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View vi = convertView; if (vi == null) { vi = inflater.inflate(R.layout.pager_content_podcast_item, null); } TextView dateTextView = (TextView) vi.findViewById(R.id.podcast_date); dateTextView.setText(data.get(position).getDate().toNiceString(context)); TextView titleTextView = (TextView) vi.findViewById(R.id.podcast_title); titleTextView.setText(data.get(position).getTitle()); // Set the tag, so that the onClickListener knows the URL vi.setTag(data.get(position).getUrl()); vi.setOnClickListener(onClickListener); return vi; } }