public class mmmusicAdapter extends BaseAdapter {
private static ArrayList<String> mMusicIDList;
public static ArrayList<String> mAlbumartIDList;
public static ArrayList<String> mMusicTitleList;
public ArrayList<String> mSingleList;
private Context mContext;
private ViewGroup rootView;
private Cursor musicCursor;
public static int mNumber = 0;
public static int playOrStop = 0;
mmmusicAdapter(Context magInstance, ViewGroup rootView) {
// TODO Auto-generated constructor stub
this.mContext = magInstance;
mMusicIDList = new ArrayList<String>();
mAlbumartIDList = new ArrayList<String>();
mMusicTitleList = new ArrayList<String>();
mSingleList = new ArrayList<String>();
this.rootView = rootView;
getMusicInfo();
}
private void getMusicInfo() {
String[] proj = { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.ALBUM_ID, MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST };
musicCursor = mContext.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, null,
null);
if (musicCursor != null && musicCursor.moveToFirst()) {
String musicID;
String albumID;
String musicTitle;
String singer;
int musicIDCol = musicCursor
.getColumnIndex(MediaStore.Audio.Media._ID);
int albumIDCol = musicCursor
.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
int musicTitleCol = musicCursor
.getColumnIndex(MediaStore.Audio.Media.TITLE);
int singerCol = musicCursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST);
System.out.println("musicIDCol" + musicIDCol + ", "
+ "albumIDCol:" + albumIDCol + ", " + "musicTitleCol:"
+ musicTitleCol + ", " + "singerCol:" + singerCol);
do {
musicID = musicCursor.getString(musicIDCol);
albumID = musicCursor.getString(albumIDCol);
musicTitle = musicCursor.getString(musicTitleCol);
singer = musicCursor.getString(singerCol);
mMusicIDList.add(musicID);
mAlbumartIDList.add(albumID);
mMusicTitleList.add(musicTitle);
mSingleList.add(singer);
} while (musicCursor.moveToNext());
}
musicCursor.close();
return;
}
public int getMusicID(int position) {
return Integer.parseInt((mMusicIDList.get(position)));
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mMusicIDList.size();
// mMusicIDList.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(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View listViewItem = convertView;
final mmViewHolder mmViewHolder;
if (listViewItem == null) {
listViewItem = LayoutInflater.from(mContext).inflate(
R.layout.music_item3, parent, false);
mmViewHolder = new mmViewHolder();
mmViewHolder.musicTitle = (TextView) listViewItem
.findViewById(R.id.musicTitle_item);
mmViewHolder.singerName = (TextView) listViewItem
.findViewById(R.id.musicArtist_item);
mmViewHolder.playButton = (RelativeLayout) listViewItem
.findViewById(R.id.oooooooo);
listViewItem.setTag(mmViewHolder);
MusicAdapter.mNumber = position;
} else {
mmViewHolder = (mmViewHolder) listViewItem.getTag();
MusicAdapter.mNumber = position;
}
// 처음 상위 이미지 및 Text 읽어오기
Bitmap mainalbumPost = PageFragment.getArtworkQuick(mContext,
Integer.parseInt((mAlbumartIDList.get(MusicAdapter.playList))),
120, 120);
MusicListActivity.title.setText(mMusicTitleList
.get(MusicAdapter.playList));
MusicListActivity.singer
.setText(mSingleList.get(MusicAdapter.playList));
MusicListActivity.poster.setImageBitmap(mainalbumPost);
mmViewHolder.musicTitle.setText(mMusicTitleList.get(position));
mmViewHolder.singerName.setText(mSingleList.get(position));
// 음악 플레이
mmViewHolder.playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 정지중일때
MagActivity.timecount = 0;
if (MusicAdapter.isPlay == false) {
mNumber = position;
playOrStop = 0;
PageFragment.setPosition(mNumber, 0);
MusicAdapter.playOrStop = 0;
MusicAdapter.isPlay = true;
MusicAdapter.playList = position;
} else if (MusicAdapter.isPlay == true) { // 재생중일때
playOrStop = 1;
MusicAdapter.playOrStop = 1;
mNumber = position;
PageFragment.setPosition(mNumber, 1);
Log.i(null, "-------play0000---------");
MusicAdapter.isPlay = false;
MusicAdapter.playList = position;
}
// 클릭 후에 상위 이미지 및 Text 변경
Bitmap mainalbumPost = PageFragment.getArtworkQuick(mContext,
Integer.parseInt((mAlbumartIDList
.get(MusicAdapter.playList))), 110, 110);
MusicListActivity.title.setText(mMusicTitleList
.get(MusicAdapter.playList));
MusicListActivity.singer.setText(mSingleList
.get(MusicAdapter.playList));
MusicListActivity.poster.setImageBitmap(mainalbumPost);
}
});
return listViewItem;
}
private static class mmViewHolder {
private RelativeLayout playButton;
private TextView musicTitle;
private TextView singerName;
}
}
listView양이 적으면 괜찮은데 Music이라서 너무 버벅거리는데 해결방안좀 부탁드립니다.