qq_37199667 2017-11-23 01:32 采纳率: 0%
浏览 1180

Android如何把获取到音乐文件的数据用simpleAdapter填充到listview列表当中去

  • 专门创建一个类用来获取歌曲的信息 */

public class AudioUtils {
/*
*
* */
//创建一个音乐实体类的实例的方法
public static ArrayList getAllSongs(Context context) {
// 初始化一个音乐实体类集合对象,用来存储下面获取到的音乐信息
ArrayList songs = null;
// 通过内容提供者的查询接口来获取到手机里面的音乐文件
Cursor cursor = context.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
// 这里新建一个数组告诉提供者要返回的列
new String[] { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.YEAR,
MediaStore.Audio.Media.MIME_TYPE,
MediaStore.Audio.Media.SIZE,
MediaStore.Audio.Media.DATA },
//设置查询的条件
MediaStore.Audio.Media.MIME_TYPE + "=? or "
+ MediaStore.Audio.Media.MIME_TYPE + "=?",
new String[] { "audio/mpeg", "audio/x-ms-wma" }, null);
// 实例化一个Song数组实体类对象
songs = new ArrayList();

    if (cursor.moveToFirst()) {
    //当光标移动到第一行时,执行下面的方法
        Song song = null;//新建一个歌曲类实例化对象,把cursor读出来的信息文件,存进去

        do {

// 实例化Song类对象
song = new Song();
//在把获取到的值通过实体类对象赋值到实体类当中去
// 文件名
song.setFileName(cursor.getString(1));
// 歌曲名
song.setTitle(cursor.getString(2));
// 时长
song.setDuration(cursor.getInt(3));
// 歌手名
song.setSinger(cursor.getString(4));
// 专辑名
song.setAlbum(cursor.getString(5));
// 年代
if (cursor.getString(6) != null) {
song.setYear(cursor.getString(6));
} else {
song.setYear("未知");
}
// 歌曲格式
if ("audio/mpeg".equals(cursor.getString(7).trim())) {
song.setType("mp3");
} else if ("audio/x-ms-wma".equals(cursor.getString(7).trim())) {
song.setType("wma");
}
// 文件大小
if (cursor.getString(8) != null) {
float size = cursor.getInt(8) / 1024f / 1024f;
song.setSize((size + "").substring(0, 4) + "M");
} else {
song.setSize("未知");
}
// 文件路径
if (cursor.getString(9) != null) {
song.setFileUrl(cursor.getString(9));
}
//把获得到的数据传输到ArrayList列表当中去
songs.add(song);
// 当光标移动到下一行的时候,继续循环,当获取到的内容没有时,光标停止移动,不满足循环跳出去
} while (cursor.moveToNext());
//关闭光标释放资源
cursor.close();

    }
    return songs;

}
上面是获取音乐文件的代码,音乐实体类,主界面上面就是一个一个Button,点击的时候把获取到的数据显示到下面的按钮中间去

  • 写回答

1条回答

  • Mr康 2017-11-23 02:21
    关注

    把你的音乐集合传给adapter,然后listview.setAdapter

    评论

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏