0

アクティビティのリストにすべてのオーディオ ファイルを表示し、それらのいずれかをクリックすると、その特定の曲を再生したいと考えています。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ListView listView = (ListView) findViewById(R.id.listView1);
    lis = new ArrayList<String>();


    file = new File("/sdcard/");
    File list[] = file.listFiles();

    for( int i=0; i< list.length; i++)
    {
            lis.add(list[i].getName());
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1, lis);
    listView.setAdapter(adapter); 
4

1 に答える 1

2

拡張子を確認するだけで、問題と同じ方法に従うことができます。また、行う必要がある 2 つの重要な変更は、絶対パス用の追加の ArrayList とEnvironment.getExternalStorageDirectory().

グローバル変数があります

ArrayList<String> msqlist;
File listFile[];
ArrayList<String> absolutepath;

さて、ここに私の方法があります:

public void walkdir(File dir) {
    String msqPattern = ".mp3";// Can include more strings for more extensions and check it.

    File[] listFile = dir.listFiles();

    if (listFile != null) {
        for (int i = 0; i < listFile.length; i++) {

            if (listFile[i].isDirectory()) {
                walkdir(listFile[i]);
            } else {
              if (listFile[i].getName().endsWith(msqPattern)){
                msqlist.add(listFile[i].getName());
                absolutepath.add(listFile[i].getAbsolutePath());

              }
            }
        }
    }    }

上記のメソッドを次のように呼び出します。

walkdir(Environment.getExternalStorageDirectory());//  For /mnt/sdcard

ここで、msqlistリスト ビューに設定する必要があります。リスト アイテムをクリックするabsolutepath.get(position)と、フル パスを取得するために使用されます。

于 2013-09-02T12:11:12.790 に答える