[英]How to display data on mobile app screen?
我試圖創建一個音樂應用程序為我校的項目之一。 所以它要求應用程序能夠讀取手機的存儲,然后顯示它。
到目前為止,我可以使用 MediaStore(底部的代碼)讀取歌曲及其數據的存儲空間。 從那里,我將所需的數據存儲到Song
類中,如下所示:
Song(String _songName, String _songArtist, String _songAlbum, String _songUri, String _coverArt).
將數據存儲到類中后,我將其存儲到ArrayList
。
因此,我能夠讀取數據並存儲。 但是從那里我不太確定如何從我存儲它的列表中顯示它。
private void loadSongs() {
Uri audioUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor audioCursor = getContentResolver().query(audioUri, null, null, null, null);
if(audioCursor != null) {
if(audioCursor.moveToFirst()) {
do {
String songName = audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String songArtist = audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String songAlbum = audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
String songUri = audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.DATA));
Song newSong = new Song(songName, songArtist, songAlbum, songUri, null);
loadedSong.add(newSong);
} while(audioCursor.moveToNext());
}
audioCursor.close();
}
}
private void loadPictures() {
Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor imageCursor = getContentResolver().query(imageUri, null, null, null, null);
if(imageCursor != null) {
if(imageCursor.moveToFirst()) {
do {
String pictureAlbum = imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.TITLE));
String pictureUri = imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA));
CoverArt newCoverArt = new CoverArt(pictureAlbum, pictureUri);
loadedCoverArt.add(newCoverArt);
} while(imageCursor.moveToNext());
}
imageCursor.close();
}
}
private void arrangeCoverArt() {
for(int audioStart = 0; audioStart < (loadedSong.size() - 1); audioStart++) {
Song currentSong = loadedSong.get(audioStart);
String audioUri = currentSong.getSongUri();
String[] arrayAudioUri = audioUri.split("/");
for(int coverStart = 0; coverStart < (loadedCoverArt.size() - 1); coverStart++) {
CoverArt currentCover = loadedCoverArt.get(coverStart);
String coverUri = currentCover.getCoverArtUri();
String[] arrayCoverUri = coverUri.split("/");
if(arrayAudioUri[(arrayAudioUri.length - 2)].equals(arrayCoverUri[(arrayCoverUri.length - 2)])) {
currentSong.setCoverArt(currentCover.getCoverArtUri());
displayedData.add(currentSong.getSongName() + "\n" + currentSong.getSongArtist() + "\n" + currentSong.getSongAlbum() + "\n" + currentSong.getCoverArt());
break;
}
}
}
}
我想如何顯示歌曲:
有多種方法可以解決此問題,這實際上取決於您要解決的問題。 例如,如果你想在一個地方顯示它們,你可以使用ListView
或者你想一次只顯示一首音樂——比如 Spotify——你應該考慮設計和實現一個獨立的視圖,將這些變量作為參數並顯示它們給用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.