下面是歌单填充代码:
下面是效果图:
package com.genius.adapter; import java.util.List; import com.genius.demo.R; import com.genius.demo.R.drawable; import com.genius.demo.R.id; import com.genius.demo.R.layout; import com.genius.musicplay.MusicData; import com.genius.musicplay.MusicPlayState; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class ListViewAdapter extends BaseAdapter{ private List<MusicData> mFileList; private LayoutInflater mLayoutInflater; private int mCurPlayMusicIndex; private int mPlayState; public ListViewAdapter(Context context, List<MusicData> FileList) { mFileList = FileList; mLayoutInflater = LayoutInflater.from(context); mCurPlayMusicIndex = -1; mPlayState = MusicPlayState.MPS_PREPARE; } public void refreshAdapter(List<MusicData> FileList) { mFileList = FileList; notifyDataSetChanged(); } public void setPlayState(int playIndex, int playState) { mCurPlayMusicIndex = playIndex; mPlayState = playState; notifyDataSetChanged(); } public int getCurPlayIndex() { return mCurPlayMusicIndex; } public int getCurPlayState() { return mPlayState; } @Override public int getCount() { // TODO Auto-generated method stub return mFileList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub if (convertView == null) { convertView = mLayoutInflater.inflate(R.layout.listview_item, null); } showPlayStateIcon(convertView, position); TextView posTextView = (TextView) convertView.findViewById(R.id.musiclistPos); String strPosString = String.valueOf(position + 1) + "."; posTextView.setText(strPosString); TextView nametTextView = (TextView) convertView.findViewById(R.id.musicName); nametTextView.setText(mFileList.get(position).mMusicName); TextView timeTextView = (TextView) convertView.findViewById(R.id.musicTime); int time = mFileList.get(position).mMusicTime; timeTextView.setText(formatTime(time)); TextView pathTextView = (TextView) convertView.findViewById(R.id.musicAritst); pathTextView.setText(mFileList.get(position).mMusicAritst); return convertView; } private void showPlayStateIcon(View view, int position) { ImageView imageView = (ImageView) view.findViewById(R.id.musicplaystate); if (position != mCurPlayMusicIndex) { imageView.setVisibility(View.GONE); return ; } imageView.setVisibility(View.VISIBLE); if (mPlayState == MusicPlayState.MPS_PAUSE) { imageView.setBackgroundResource(R.drawable.list_pause_icon); }else{ imageView.setBackgroundResource(R.drawable.list_play_icon); } } private static String formatTime(int time) { int min = time / (1000 * 60 ); String sec = time % (1000 * 60) + ""; if(sec.length()<2){ sec += "000"; } return min+":"+sec.trim().substring(0,2); } }