public class MainActivity extends Activity {
private MediaPlayer mediaPlayer;
private List<String> list;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
//创建MediaPlayer
mediaPlayer = new MediaPlayer();
//设置点击播放音乐
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
try {
//重制资源
mediaPlayer.reset();
//加载路径
mediaPlayer.setDataSource(list.get(position));
//准备
mediaPlayer.prepare();
mediaPlayer.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
//点击开始递归
public void getstart(View v){
//存放路径的集合
list = new ArrayList<String>();
//将文件的路径 传入递归方法中
getFile(Environment.getExternalStorageDirectory());
//展示内容
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, list);
listView.setAdapter(adapter);
}
//递归的方法
public void getFile(File file){
//得到Sd的所有文件
File[] files = file.listFiles();
//对当前的文件进行判断是否等于null
if(files != null){
//遍历下所有的文件
for (File file2 : files) {
//判断是否是文件夹 如果是文件夹 就自己调取自己传入新的路径 继续递归
if(file2.isDirectory()){
getFile(file2);
}else{
//如果不是文件夹的到文件的名字 file2.getPath() 文件的路径
String name = file2.getName();
String path = file2.getPath();
//判断是否是MP3 的音乐
if(name.endsWith("mp3")){
list.add(path);
}
}
}
}
}
//释放资源
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if(mediaPlayer!=null){
mediaPlayer.release();
mediaPlayer = null;
}
}
}