从SDCARD显示歌曲 [英] show songs from SDCARD

查看:149
本文介绍了从SDCARD显示歌曲的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要显示从SD卡中的歌曲列表视图,但它给部队关闭。
任何一个可以帮助我的。
code:

 包com.ex.imageGallery;进口的java.io.File;进口android.app.Activity;
进口android.content.Intent;
进口android.graphics.drawable.ColorDrawable;
进口android.net.Uri;
进口android.os.Bundle;
进口android.os.Environment;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ArrayAdapter;
进口android.widget.ImageView;
进口android.widget.ListView;
进口java.io.FilenameFilter;公共类audioList延伸活动{
 @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
     乌里[] mUrls;
    的String [] mFiles = NULL;
        super.onCreate(savedInstanceState);        的setContentView(R.layout.audio_list);
        LV的ListView;
        LV =(ListView控件)findViewById(R.id.LV);
        / *文件首页= Environment.getDataDirectory();
        文件[] = audioList home.listFiles(新的FilenameFilter(){            公共布尔接受(文件目录,字符串名称){
                // TODO自动生成方法存根
                回报(name.endsWith(MP3));
            }
        });
        mFiles =新的String [audioList.length]
        的for(int i = 0; I< audioList.length;我++)
        {
            mFiles [I] = audioList [I] .getAbsolutePath();
        }
        mUrls =新的URI [mFiles.length]
        的for(int i = 0; I< mFiles.length;我++)
        {
            mUrls [I] = Uri.parse(mFiles [I]);
        }
        lv.setAdapter(新ArrayAdapter<串GT;(audioList.this,R.layout.new_list,mFiles));
        lv.setDividerHeight(2);
        lv.setTextFilterEnabled(真); * /
 }
 }


解决方案

媒体文件由系统,所以你需要使用查询检索媒体自动注册。

 最后光标光标= managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
     新的String [] {} MediaStore.Audio.Media.DISPLAY_NAME,NULL,NULL,NULL);

加载光标。要在ListView显示它您需要使用 SimpleCursorAdapter 显示ListView中的数据。

I want to show songs from sdcard in listview but it gives Force Close. Can any one help me for this. Code:

package com.ex.imageGallery;

import java.io.File;

import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import java.io.FilenameFilter;

public class audioList extends Activity{


 @Override
    public void onCreate(Bundle savedInstanceState) {
     Uri[] mUrls;
    String[] mFiles=null; 
        super.onCreate(savedInstanceState);

        setContentView(R.layout.audio_list);
        ListView lv;
        lv = (ListView)findViewById(R.id.LV);
        /*File home = Environment.getDataDirectory();
        File[] audioList = home.listFiles(new FilenameFilter() {

            public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                return(name.endsWith(".mp3"));
            }
        });
        mFiles = new String[audioList.length];
        for(int i=0;i<audioList.length;i++)
        {
            mFiles[i] = audioList[i].getAbsolutePath();
        }
        mUrls = new Uri[mFiles.length];
        for(int i=0;i<mFiles.length;i++)
        {
            mUrls[i] = Uri.parse(mFiles[i]);
        }
        lv.setAdapter(new ArrayAdapter<String>(audioList.this,R.layout.new_list,mFiles));
        lv.setDividerHeight(2);
        lv.setTextFilterEnabled(true); */
 }
 }

解决方案

Media files are automatically registered by the system so you need to use a query to retrieve the media.

final Cursor cursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
     new String[] { MediaStore.Audio.Media.DISPLAY_NAME }, null, null, null);

That loads a cursor. To display it in a ListView you will need to use SimpleCursorAdapter to display the data in the ListView.

这篇关于从SDCARD显示歌曲的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆