Android Open Source - lastfm-android-music-discovery Track List Adapter






From Project

Back to project page lastfm-android-music-discovery.

License

The source code is released under:

Apache License

If you think the Android project lastfm-android-music-discovery listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.mikeladze.musicdiscovery.album.adapter;
/*w w  w  .ja v  a 2  s.  co m*/
import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.mikeladze.musicdiscovery.R;

/**
 * A custom adapter for the track list.
 * 
 * @author Tim Mikeladze
 */
public class TrackListAdapter extends ArrayAdapter<LastFMTrack> {
  
  private Context context;
  private int layoutResourceID;
  private OnTrackClickListener onTrackClickListener;
  
  /**
   * Instantiates a new track list adapter.
   * 
   * @param context the context
   * @param layoutResourceID the layout resource id
   * @param tracks the tracks
   */
  public TrackListAdapter(Context context, int layoutResourceID, ArrayList<LastFMTrack> tracks) {
    super(context, layoutResourceID, tracks);
    this.layoutResourceID = layoutResourceID;
    this.context = context;
  }
  
  /**
   * Sets the on track click listener.
   * 
   * @param onTrackClickListener the new on track click listener
   */
  public void setOnTrackClickListener(OnTrackClickListener onTrackClickListener) {
    this.onTrackClickListener = onTrackClickListener;
  }
  
  @Override
  /**
   * Gets the view
   */
  public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    TrackHolder holder = null;
    
    if (row == null) {
      LayoutInflater inflater = ((Activity) context).getLayoutInflater();
      row = inflater.inflate(layoutResourceID, parent, false);
      
      holder = new TrackHolder();
      holder.title = (TextView) row.findViewById(R.id.textview_track_title);
      holder.image = (ImageView) row.findViewById(R.id.imageview_youtube);
      holder.image.setOnClickListener(new OnItemClickListener(position));
      
      row.setTag(holder);
    } else {
      holder = (TrackHolder) row.getTag();
    }
    
    LastFMTrack track = getItem(position);
    holder.title.setText(position + 1 + ". " + track.getTitle());
    
    return row;
  }
  
  /**
   * A holder for list item data.
   * 
   * @author Tim Mikeladze
   */
  private static class TrackHolder {
    
    private TextView title;
    private ImageView image;
    
  }
  
  /**
   * Provides a callback to the OnTrackClickListener fragment
   * 
   * 
   */
  private class OnItemClickListener implements OnClickListener {
    
    private int position;
    
    /**
     * Instantiates a new on item click listener.
     * 
     * @param position the position
     */
    public OnItemClickListener(int position) {
      this.position = position;
    }
    
    @Override
    public void onClick(View v) {
      if (onTrackClickListener != null) {
        onTrackClickListener.onTrackClick(position);
      }
    }
  }
}




Java Source Code List

com.mikeladze.musicdiscovery.album.activity.AlbumActivity.java
com.mikeladze.musicdiscovery.album.adapter.LastFMTrack.java
com.mikeladze.musicdiscovery.album.adapter.OnTrackClickListener.java
com.mikeladze.musicdiscovery.album.adapter.TrackListAdapter.java
com.mikeladze.musicdiscovery.album.fragment.AlbumInfoFragment.java
com.mikeladze.musicdiscovery.album.fragment.AlbumTracksFragment.java
com.mikeladze.musicdiscovery.artist.activity.ArtistActivity.java
com.mikeladze.musicdiscovery.artist.fragment.ArtistAlbumsFragment.java
com.mikeladze.musicdiscovery.artist.fragment.ArtistInfoFragment.java
com.mikeladze.musicdiscovery.artist.fragment.SimilarArtistsFragment.java
com.mikeladze.musicdiscovery.base.activity.BaseFragmentActivity.java
com.mikeladze.musicdiscovery.base.adapter.SectionsPagerAdapter.java
com.mikeladze.musicdiscovery.base.fragment.BaseTabFragment.java
com.mikeladze.musicdiscovery.base.fragment.ImageGridViewFragment.java
com.mikeladze.musicdiscovery.http.LastFMResult.java
com.mikeladze.musicdiscovery.http.RestClient.java
com.mikeladze.musicdiscovery.main.activity.MainActivity.java
com.mikeladze.musicdiscovery.main.fragment.HypedArtistsFragment.java
com.mikeladze.musicdiscovery.main.fragment.TopArtistsFragment.java
com.mikeladze.musicdiscovery.search.activity.SearchResultsActivity.java
com.mikeladze.musicdiscovery.search.adapter.SearchResultsAdapter.java
com.mikeladze.musicdiscovery.util.IntentUtils.java
com.mikeladze.musicdiscovery.view.gridview.DynamicImageView.java
com.mikeladze.musicdiscovery.view.gridview.ImageGridAdapter.java
com.mikeladze.musicdiscovery.view.gridview.loader.FileCache.java
com.mikeladze.musicdiscovery.view.gridview.loader.ImageLoader.java
com.mikeladze.musicdiscovery.view.gridview.loader.MemoryCache.java
com.mikeladze.musicdiscovery.view.gridview.loader.Utils.java