Android下的实现对本地指定和筛选文件的目录显示

条件:

       1.我们需要得到一些路径,某个文件目录下的。比如:"/kgmusic/download/' 下的。我打开手机看的是这个路径。

       2. 我们是为了筛选出.MP3 文件。然后显示。不希望出现说显示所有的文件

       3.确定用怎么样的方式用ListActivity 还是SimpleAdapter 通过list显示在自己自定的xml文件中

 

实现第一个条件:

     1. 这是有点傻哈, 我是这样的。我们在手机中看到路经不一定android 所对应的路经。怎么看呢。可以通过adb shell 去显示。比如说:"/kgmusic/download/' 。它在Android下的路径其实是"/sdcard/kgmusic/download/"

     

// 存放着音乐文件的路径
	private final String MUSIC_PATH = "/sdcard/kgmusic/download/";

      2.我们去实现FilenameFilter这个接口,取到filename结尾是.MP3的文件

 

	// 用来去筛选出对应的.mp3文件

	class musicfilter implements FilenameFilter {
		/*
		 * accept方法的两个参数的意义: dir:文件夹对像,也就是你原来调用list方法的File文件夹对像 name:当前判断的文件名,
		 * 这个文件名就是文件夹下面的文件
		 * 返回:这个文件名是否符合条件,当为true时,list和listFiles方法会把这个文件加入到返回的数组里,false时则不会加入
		 */
		public boolean accept(File dir, String filename) {
			// TODO Auto-generated method stub
			return (filename.endsWith(".mp3"));
		}
	}

 // 将这个文件显示在Listview 下 。我这里用的SimpleAdapter适配器去实现的。这里要两个xml.SetAlarm.this是这个本地Activity

	private void ListSongsName() {
		//首先是要得到music文件的路径
		File file=new File(MUSIC_PATH);
		List<Map<String,Object>> list= new ArrayList<Map<String,Object>>();
		//将所有的文件加入到一个list文件中
		if(file.list(new musicfilter()).length>0){
			
			for (File file1 : file.listFiles(new musicfilter())){
				Map<String,Object> map=new HashMap<String, Object>();
			   map.put("filename",new EFfile(file1).getFile().getName());
			   list.add(map);
			}
		}
		SimpleAdapter sa= new SimpleAdapter(SetAlarm.this, list, 
				R.layout.musiclist, new String[]{"filename"}, new int[]{R.id.MusicItem} );
		listview.setAdapter(sa);
		
	}

 贴下对应的mustlist.xml 文件吧

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
     <TextView 
         android:id="@+id/MusicItem"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         
         />
 
</LinearLayout>

 


 

 

      

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值