我想在我的活动列表中显示所有音频文件,并点击其中任何一个想要播放该特定歌曲。
@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 :(得分: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)
获取完整路径。