簡體   English   中英

如何在移動應用屏幕上顯示數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM