0

まず、私は Java プログラミングにまったく慣れていないため (3 週間前に始めたばかりです)、問題を解決するために 2 日間最善を尽くしました。しかし、成功しませんでした。

SDカードからmp3ファイルを読み取るこのクラスがあります:

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.HashMap;

public class SongsManager {
    // SDCard Path
    final String MEDIA_PATH = new String("/sdcard/audio");
    private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

    // Constructor
    public SongsManager(){

    }

    /**
     * Function to read all mp3 files from sdcard
     * and store the details in ArrayList
     * */
    public ArrayList<HashMap<String, String>> getPlayList(){
        File home = new File(MEDIA_PATH);

        if (home.listFiles(new FileExtensionFilter()).length > 0) {
            for (File file : home.listFiles(new FileExtensionFilter())) {
                HashMap<String, String> song = new HashMap<String, String>();
                song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
                song.put("songPath", file.getPath());

                // Adding each song to SongList
                songsList.add(song);
            }
        }
        // return songs list array
        return songsList;
    }

    /**
     * Class to filter files which are having .mp3 extension
     * */
    class FileExtensionFilter implements FilenameFilter {
        public boolean accept(File dir, String name) {
            return (name.endsWith(".mp3") || name.endsWith(".MP3"));
        }
    }
}

問題: 私のアプリケーションには 4 つのクラスが含まれており、すべてが を使用していArrayList< HashMap< String, String >>ます。だから、私は使い続ける必要がありArrayList< HashMap< String, String >>ます。

Must :getPlayList()戻り値の型は always でなければなりませんArrayList< HashMap< String, String >>。私は他のクラスでそのメソッドを使用しているので。

目標SongsManager:クラス内にオーディオファイルの配列(rawフォルダーに保存)を作成したい

int[] lessonClips = { R.raw.button_1, R.raw.button_2, R.raw.button_3, R.raw.button_4, R.raw.button_5, R.raw.button_6 };

パスから読み取る代わりに、MusicPlayer にこの配列を読み取らせます。そのLessonClipsのみを再生するように、このクラスをカスタマイズするようなものです。

質問: getPlayList を操作of 型をLessonClips返すですか?songListArrayList< HashMap< String, String >>

4

1 に答える 1

0

私はあなたが欲しいと言ったものをざっと読んだだけで、レッスンクリップをインスタンス変数として宣言することであなたの目的が解決されるかもしれないと感じています。そうすれば、任意の関数でレッスンクリップを更新し、関数から任意の型を返すことができます。以下のようなもの: -

public class SongManager{
       private int[] lessonclips;

       public ArrayList<HashMap<String, String>> getPlayList(){
           //do whatever you want with lessonclips
           //and return your arraylist which you wanted to return

       }

      public int[] getLessonClips{
         return lessonclips;
        }
于 2012-07-15T20:02:31.073 に答える