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

来源:互联网 发布:空燃比传感器数据 编辑:程序博客网 时间:2024/05/16 07:10

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

    博客分类:
  • 2014-09-Android 实现对本地指定文件目录下的显示
文件筛选ListViewSimpleAdapter 

条件:

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

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

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

 

实现第一个条件:

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

     

Java代码 复制代码 收藏代码
  1. // 存放着音乐文件的路径   
  2.     private final String MUSIC_PATH = "/sdcard/kgmusic/download/";  

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

 

Java代码 复制代码 收藏代码
  1. // 用来去筛选出对应的.mp3文件   
  2.   
  3. class musicfilter implements FilenameFilter {   
  4.     /*  
  5.      * accept方法的两个参数的意义: dir:文件夹对像,也就是你原来调用list方法的File文件夹对像 name:当前判断的文件名, 
  6.      * 这个文件名就是文件夹下面的文件 
  7.      * 返回:这个文件名是否符合条件,当为true时,list和listFiles方法会把这个文件加入到返回的数组里,false时则不会加入 
  8.      */  
  9.     public boolean accept(File dir, String filename) {   
  10.         // TODO Auto-generated method stub  
  11.         return (filename.endsWith(".mp3"));   
  12.     }   
  13. }  

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

Java代码 复制代码 收藏代码
  1. private void ListSongsName() {   
  2.     //首先是要得到music文件的路径  
  3.     File file=new File(MUSIC_PATH);   
  4.     List<Map<String,Object>> list= new ArrayList<Map<String,Object>>();   
  5.     //将所有的文件加入到一个list文件中  
  6.     if(file.list(new musicfilter()).length>0){   
  7.            
  8.         for (File file1 : file.listFiles(new musicfilter())){   
  9.             Map<String,Object> map=new HashMap<String, Object>();   
  10.            map.put("filename",new EFfile(file1).getFile().getName());   
  11.            list.add(map);   
  12.         }   
  13.     }   
  14.     SimpleAdapter sa= new SimpleAdapter(SetAlarm.this, list,    
  15.             R.layout.musiclist, new String[]{"filename"}, new int[]{R.id.MusicItem} );   
  16.     listview.setAdapter(sa);   
  17.        
  18. }  

 贴下对应的mustlist.xml 文件吧

Xml代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical" >  
  6.        
  7.      <TextView    
  8.          android:id="@+id/MusicItem"  
  9.          android:layout_width="fill_parent"  
  10.          android:layout_height="wrap_content"  
  11.             
  12.          />  
  13.     
  14. </LinearLayout>  
0 0
原创粉丝点击