package com.konka.music.adapter;
import java.util.Collection;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import com.konka.music.R;
import com.konka.music.pojo.MusicInfo;
import com.konka.music.pojo.PlayListItemViewHolder;
import com.konka.music.util.ViewBindUtil;
public class TrackAdapter extends ArrayAdapter<MusicInfo> {
private Context mContext = null;
/** 播放时为相应播放条目显示一个播放标记 */
private int mActivateItemPos = -1;
public TrackAdapter(Context context) {
mContext = context;
}
public TrackAdapter(Context context, OnClickListener l) {
mContext = context;
this.l = l;
}
@Override
public void addAll(Collection<? extends MusicInfo> collection) {
super.addAll(collection);
mActivateItemPos = -1;
notifyDataSetChanged();
}
/** 让指定位置的条目显示一个正在播放标记(活动状态标记) */
public void setSpecifiedIndicator(int position) {
mActivateItemPos = position;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
PlayListItemViewHolder holder = null;
if (convertView == null || convertView.getTag() == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.audio_list_item, parent, false);
holder = new PlayListItemViewHolder();
ViewBindUtil.bindView(convertView, holder, l);
convertView.setTag(holder);
} else {
holder = (PlayListItemViewHolder) convertView.getTag();
}
ViewBindUtil.assignToView(getItem(position), holder);
if (mActivateItemPos == position) {
holder.indicator.setVisibility(View.VISIBLE);
} else {
holder.indicator.setVisibility(View.INVISIBLE);
}
return convertView;
}
private OnClickListener l = null;
public void setOnClickListener(OnClickListener l) {
this.l = l;
}
}