content: package com.kure.musicplayer.adapters;
  
  import java.util.ArrayList;
  
  import com.kure.musicplayer.R;
  import com.kure.musicplayer.model.Song;
  
  import android.content.Context;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.BaseAdapter;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  
  /**
   * Maps `Songs` inside `ArrayLists` into `TextView` fields.
   * 
   * We'll map the ArrayList from our MainActivity into
   * multiple Artist/Title fields inside our activity_main Layout.
   *
   */
  public class AdapterSong extends BaseAdapter {
  
  	private ArrayList<Song> songs;
  	private LayoutInflater songInflater;
  	
  	public AdapterSong(Context c, ArrayList<Song> theSongs) {
  		songs = theSongs;
  		songInflater = LayoutInflater.from(c);
  	}
  	
  	@Override
  	public int getCount() {
  		return songs.size();
  	}
  
  	@Override
  	public Object getItem(int position) {
  		return songs.get(position);
  	}
  
  	@Override
  	public long getItemId(int position) {
  		// TODO Auto-generated method stub
  		return 0;
  	}
  
  	@Override
  	public View getView(int position, View convertView, ViewGroup parent) {
  		
  		// Will map from a Song to a Song layout
  		LinearLayout songLayout = (LinearLayout)songInflater.inflate(R.layout.menu_item_song,
  				                                                     parent,
  				                                                     false);
  		
  		TextView titleView  = (TextView)songLayout.findViewById(R.id.menu_item_song_title);
  		TextView artistView = (TextView)songLayout.findViewById(R.id.menu_item_song_artist);
  		TextView albumView  = (TextView)songLayout.findViewById(R.id.menu_item_song_album);
  		
  		Song currentSong = songs.get(position);
  		
  		String title = currentSong.getTitle();
  		if (title.isEmpty())
  			titleView.setText("<unknown>");
  		else
  			titleView.setText(currentSong.getTitle());
  		
  		String artist = currentSong.getArtist();
  		if (artist.isEmpty())
  			artistView.setText("<unknown>");
  		else
  			artistView.setText(currentSong.getArtist());
  		
  		String album = currentSong.getAlbum();
  		if (album.isEmpty())
  			albumView.setText("<unknown>");
  		else
  			albumView.setText(currentSong.getAlbum());
  		
  		// Saving position as a tag.
  		// Each Song layout has a onClick attribute,
  		// which calls a function that plays a song
  		// with that tag.
  		songLayout.setTag(position);
  		return songLayout;
  	}
  }
  