码迷,mamicode.com
首页 > 移动开发 > 详细

Android开发本地及网络Mp3音乐播放器(十八)新下载歌曲加载准备SdcardSearchToList

时间:2016-05-18 19:46:09      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

扫描本地文件加载到item

不限于应用到音乐播放器,其他Android工程,也可以使用SdcardSearchToList

其他Android工程也可以使用,我现在做了很小的Demo

后续将博文,将在播放器里,加入这一功能,来实现刚下载好的音乐,加载到播放器

这个Demo的源码下载:
http://download.csdn.net/album/detail/3105
名称为:SdcardSearchToList,如果没有显示,可能还没有审核完成
不下载也可以,因为只有1个java文件,2个xml文件,非常小

截止到目前的源码下载:
http://download.csdn.net/album/detail/3105
(最新的,请下载最后一个,本博文对应版本2.1;如果需要逐步实现的过程,请下载所有)

实现效果如图:

技术分享

技术分享

实现代码如下:

GetListActivity如下:(主Activity)

package com.iwanghang.sdcardsearchtolist;

import android.os.Bundle;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;

/**
 * 不要忘记加权限
 * <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
 */
public class GetListActivity extends Activity {

    private Button myBtn = null;
    private ListView lv = null;
    private SimpleAdapter sa = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_get_list);

        lv = (ListView)findViewById(R.id.listv);

        String[] from = {"text_content"};
        int[] to = {R.id.myView1};
        sa = new SimpleAdapter(this, getList(), R.layout.itemlist, from, to);


        myBtn = (Button)findViewById(R.id.myButton);
        myBtn.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                lv.setAdapter(sa);
            }
        });

    }

    public List<Map<String, Object>> getList()
    {
        List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
        String sDStateString = Environment.getExternalStorageState();
        if(sDStateString.equals(Environment.MEDIA_MOUNTED))
        {
            //File SDFile = Environment.getExternalStorageDirectory();
            //File sdPath = new File(SDFile.getAbsolutePath());
            File sdPath = new File(Environment.getExternalStorageDirectory() + "/drm_music");
            System.out.println("GetListActivity.List.sdPath = " + sdPath );
            System.out.println("GetListActivity.List.listFiles = " + sdPath.listFiles() );
            if(sdPath.listFiles().length > 0)
            {
                for(File file : sdPath.listFiles())
                {
                    Map<String, Object> map = new HashMap<String, Object>();
                    map.put("text_content", file.getName());
                    list.add(map);
                    System.out.println("name-->"+file.getName());
                }
            }
        }
        return list;
    }

    //其中,getList()用于扫描本地文件,获得文件的名字;为ListView设置一个适配器,将扫描到的文件显示在ListView上,这里需要注意,适配器的后面两个参数都是数组。
}

activity_get_list.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.iwanghang.sdcardsearchtolist.GetListActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="获取本地文件信息" />

    <Button
        android:id="@+id/myButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="扫描" />
    <ListView
        android:id="@+id/listv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scrollbars="vertical" />


</LinearLayout>

itemlist.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lvitem"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns ="*">

    <TableRow>
        <TextView
            android:id="@+id/myView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>
        <TextView
            android:id="@+id/myView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
        </TextView>
        <TextView
            android:id="@+id/myView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>
    </TableRow>

</TableLayout>


Android开发本地及网络Mp3音乐播放器(十八)新下载歌曲加载准备SdcardSearchToList

标签:

原文地址:http://blog.csdn.net/iwanghang/article/details/51395664

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!