2013-08-31 3 views
0

Я хочу показать все аудиофайлы в списке в моей деятельности и нажать на любом из них, чтобы воспроизвести эту песню.Извлеките все аудиофайлы из sdcard и покажите их в listview

@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); 
+0

@ Vishesh-just follow steps-http: //www.androidhive.info/2012/03/android-building-audio-player-tutorial/ – FarhaSameer786

+0

есть ли другой способ или учебник для этого. –

+0

@ Vishes - в чем проблема с этим учебным примером ... – FarhaSameer786

ответ

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), чтобы получить его полный дорожка.

Смежные вопросы