노래를 사전 순으로 정렬하는 목록보기를 작성하십시오
문제
안드로이드에 정말로 Android와 Music Player를 개발하고 지금까지 목록보기를 채우고 모두 알파벳순으로 목록을 정렬해야하며 이미지보기에서 노래의 앨범 아트를 표시하고 싶습니다.제발 도와주세요.
여기 코드가
public class MainActivity extends Activity {
ListView musiclist;
Cursor musiccursor;
int music_column_index;
int count;
MediaPlayer mMediaPlayer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init_phone_music_grid();
}
private void init_phone_music_grid() {
String[] proj = { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Albums.ALBUM_ID,
MediaStore.Audio.Albums._ID,
MediaStore.Audio.Albums.ALBUM_ART,
MediaStore.Video.Media.SIZE };
musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null, null);
count = musiccursor.getCount();
musiclist = (ListView) findViewById(R.id.listView);
musiclist.setAdapter(new MusicAdapter(getApplicationContext()));
musiclist.setOnItemClickListener(musicgridlistener);
mMediaPlayer = new MediaPlayer();
}
private OnItemClickListener musicgridlistener = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position,long id) {
music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
musiccursor.moveToPosition(position);
String filename = musiccursor.getString(music_column_index);
try {
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.reset();
}
mMediaPlayer.setDataSource(filename);
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (Exception e) {
}
}
};
public class MusicAdapter extends BaseAdapter {
private Context mContext;
public MusicAdapter(Context c) {
mContext = c;
}
public int getCount() {
return count;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String id = null;
String id1 = null;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
music_column_index = musiccursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
musiccursor.moveToPosition(position);
id = musiccursor.getString(music_column_index);
music_column_index = musiccursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
musiccursor.moveToPosition(position);
id1 = musiccursor.getString(music_column_index);
TextView Title = (TextView) rowView.findViewById(R.id.titlelist);
TextView Artist = (TextView) rowView.findViewById(R.id.artistlist);
ImageView imageView = (ImageView) rowView.findViewById(R.id.iconlist);
// What should i do to set the album art to this imageview ????
Title.setText(id);
Artist.setText(id1);
// change the icon for Windows and iPhone
return rowView;
}
}
}
. 해결책
노래의 정렬 된 목록을 얻으려면 null에서 null에서 최종 매개 변수를 변경합니다.
musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null,COLUMN_NAME);
.
i.e.노래 제목의 목록을 정렬하려면
와 같은 작업을 수행하십시오.musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null,MediaStore.Audio.Media.TITLE);
.
이 라이브러리를 살펴보십시오.IOS와 비슷한 목록을 알파벳순으로 나누는 데 도움이됩니다.
제휴하지 않습니다 StackOverflow