안드로이드 개발 질문/답변
(글 수 45,052)
package exam.MediaPlayerTest;
import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.provider.MediaStore; import android.provider.MediaStore.MediaColumns; import android.provider.MediaStore.Audio.AudioColumns; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView;
public class ArtistList extends Activity implements OnItemClickListener
{
String[] mListData = new String[]{AudioColumns.TITLE , AudioColumns.ARTIST,AudioColumns.ALBUM};
private Object mediaTitle;
private Cursor mCursor;
public void onCreate(Bundle saveInstanceState)
{
super.onCreate(saveInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.artist_list);
Log.e("MediaList","시작Artist");
Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mListData, null, null, null);
ArtistListAdapter artistAdapter = new ArtistListAdapter(this , cur);
ListView ArtistListLv = (ListView)this.findViewById(R.id.artist_list);
ArtistListLv.setAdapter(artistAdapter);
ArtistListLv.setOnItemClickListener(this);
} @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
Log.e("View",""+arg1);
Log.e("int",""+arg2);
Log.e("Long",""+arg3);
Intent listIntent = new Intent(ArtistList.this , MediaDisplay.class);
startActivity(listIntent);
}
}
리스트.java 입니다..
package exam.MediaPlayerTest;
import android.content.Context; import android.database.Cursor; import android.provider.MediaStore; import android.provider.MediaStore.Audio.AudioColumns; import android.provider.MediaStore.Audio.Media; import android.provider.MediaStore.MediaColumns; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView;
public class ArtistListAdapter extends BaseAdapter
{
// String[] mListData = {Media.TITLE,Media.ARTIST,Media.ALBUM};
// String[] mList2Data = {"Play a groovy mix of songs that go well together","Let Groove surprise you with an albu, artist or mix","Groove on the sontgs you know","Play sets of three songs by artist"};
public Context mContext;
private View converView;
private Cursor mCursor;
private int mediaTitle;
private int mediaArtist;
private int mediaAlbum;
public ArtistListAdapter(Context context , Cursor c) {
// TODO Auto-generated constructor stub
mContext = context; // 리스트뷰 화면정보..context
mCursor = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
Log.e("COUNT",""+mCursor.getCount());
return mCursor.getCount();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} @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
LayoutInflater itemInflate = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
converView = itemInflate.inflate(R.layout.artist_list_item, null);
TextView artistListTv = (TextView)converView.findViewById(R.id.artist_tv);
TextView artistListTv2 = (TextView)converView.findViewById(R.id.artist_tv2);
mCursor.moveToFirst();
mediaTitle = mCursor.getColumnIndex(AudioColumns.TITLE);
mediaArtist = mCursor.getColumnIndex(AudioColumns.ARTIST);
mediaAlbum = mCursor.getColumnIndex(AudioColumns.ALBUM);
try {
artistListTv.setText(mCursor.getString(mediaTitle));
artistListTv2.setText(mCursor.getString(mediaArtist));
} catch (Exception e) {
// TODO: handle exception
Log.e("Exception",e.toString());
}finally{
// 데이터 없으면 팝업..or 뒤로가기.
}
return converView;
}
}
adapter.java 입니다..
구조는 대충 위와같구요.
문제는 미디어파일을 가져올때 count 의 갯수는 맞게 가져오는듯 합니다.
이에관한 태그정보가 불일치 하네요.
이전에 들어있던 미디어정보만 가지고오고있는듯 합니다....( 최신100곡 넣어 테스트)
증상은..파일리스트가 이전에 들어있던 , 미디어 파일만 가져와서..정작 새로넣은 음악의 리스트는 보여주지 못하고있는 증상을 보입니다..
제가 추측한게 맞는건지 , 소스 보시고 조언부탁도 드립니다.
그럼 수고하세요.



