Android如何扫描sdcard中的音乐文件,并加载到ListView中? 50

初学者,不是很懂。希望大神讲解一下。希望能提供源码。谢谢啦。... 初学者,不是很懂。希望大神讲解一下。希望能提供源码。谢谢啦。 展开
 我来答
美丽之最FX
推荐于2017-05-17 · TA获得超过129个赞
知道答主
回答量:130
采纳率:100%
帮助的人:104万
展开全部
Android系统会自动把添加到SD卡上的歌曲添加到一个SQLite数据库里 我们要做的就是把歌曲的信息从这个数据库里查询出来
查询SD卡上的mp3歌曲信息
Cursor mAudioCursor = this.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,// 字段 没有字段 就是查询所有信息 相当于SQL语句中的 “ * ”
null, // 查询条件
null, // 条件的对应?的参数
MediaStore.Audio.AudioColumns.TITLE);// 排序方式
// 循环输出歌曲的信息
List<Map<String, Object>> mListData = new ArrayList<Map<String, Object>>();
for (int i = 0; i < mAudioCursor.getCount(); i++) {
mAudioCursor.moveToNext();
// 找到歌曲标题和总时间对应的列索引
int indexTitle = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);//歌名
int indexARTIST = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST);//艺术家
int indexALBUM = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM);//专辑

String strTitle = mAudioCursor.getString(indexTitle);
String strARTIST = mAudioCursor.getString(indexARTIST);
String strALBUM = mAudioCursor.getString(indexALBUM);

HashMap<String, Object> nowMap = new HashMap<String, Object>();
nowMap.put("SongName", strTitle + "---" + strARTIST
+ "---" + strALBUM);
mListData.add(nowMap);
}
加载到ListView里就很简单了
请采纳。
追问
如何加载到ListView中,不懂。
百度网友fea7ff3
2014-09-21 · TA获得超过351个赞
知道答主
回答量:38
采纳率:0%
帮助的人:36.3万
展开全部
一种是用一楼的方法,还有一种是自己写一个方法递归扫描SD卡下的所有文件和文件夹,是音乐文件就添加到一个List里面。显示到ListView可以写一个adapter,adapter的getView方法里加载自己的单行布局。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m570585644
2014-09-19 · 超过32用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:43.2万
展开全部
上面的哥们已经找到MP3信息了,你在listview的适配器里getview()方法中获取mListData里的数据就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式