package com.lq.adapter; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.TextView; import com.lq.xpressmusic.R; import com.lq.entity.PlaylistInfo; /** * @author lq 2013-6-1 lq2625304@gmail.com * */ public class PlaylistAdapter extends BaseAdapter implements OnClickListener { private List<PlaylistInfo> mData = null; private Context mContext = null; private boolean mMenuVisible = true; public PlaylistAdapter(Context c) { mContext = c; mData = new ArrayList<PlaylistInfo>(); } public void setData(List<PlaylistInfo> data) { mData.clear(); if (data != null) { mData.addAll(data); } notifyDataSetChanged(); } public List<PlaylistInfo> getData() { return mData; } public void setPopupMenuVisible(boolean visible) { mMenuVisible = visible; notifyDataSetChanged(); } @Override public boolean isEmpty() { return mData.size() == 0; } @Override public int getCount() { return mData.size(); } @Override public PlaylistInfo getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(mContext).inflate( R.layout.list_item_playlist, null); holder.playlist_name = (TextView) convertView .findViewById(R.id.playlist_name); holder.playlist_members_count = (TextView) convertView .findViewById(R.id.song_count_of_playlist); holder.popup_menu = convertView .findViewById(R.id.playlist_popup_menu); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.playlist_name.setText(mData.get(position).getPlaylistName()); holder.playlist_members_count.setText("" + mData.get(position).getNumOfMembers()); if (mMenuVisible) { holder.popup_menu.setVisibility(View.VISIBLE); holder.popup_menu.setOnClickListener(PlaylistAdapter.this); } else { holder.popup_menu.setVisibility(View.INVISIBLE); } return convertView; } static class ViewHolder { TextView playlist_name; TextView playlist_members_count; View popup_menu; } @Override public void onClick(View v) { v.showContextMenu(); } }