Android下的实现对本地指定和筛选文件的目录显示
16lz
2021-01-25
Android下的实现对本地指定和筛选文件的目录显示
- 博客分类:
- 2014-09-Android 实现对本地指定文件目录下的显示
条件:
1.我们需要得到一些路径,某个文件目录下的。比如:"/kgmusic/download/' 下的。我打开手机看的是这个路径。
2. 我们是为了筛选出.MP3 文件。然后显示。不希望出现说显示所有的文件
3.确定用怎么样的方式用ListActivity 还是SimpleAdapter 通过list显示在自己自定的xml文件中
实现第一个条件:
1. 这是有点傻哈, 我是这样的。我们在手机中看到路经不一定android 所对应的路经。怎么看呢。可以通过adb shell 去显示。比如说:"/kgmusic/download/' 。它在Android下的路径其实是"/sdcard/kgmusic/download/"
Java代码- //存放着音乐文件的路径
- privatefinalStringMUSIC_PATH="/sdcard/kgmusic/download/";
// 存放着音乐文件的路径private final String MUSIC_PATH = "/sdcard/kgmusic/download/";
2.我们去实现FilenameFilter这个接口,取到filename结尾是.MP3的文件
Java代码- //用来去筛选出对应的.mp3文件
- classmusicfilterimplementsFilenameFilter{
- /*
- *accept方法的两个参数的意义:dir:文件夹对像,也就是你原来调用list方法的File文件夹对像name:当前判断的文件名,
- *这个文件名就是文件夹下面的文件
- *返回:这个文件名是否符合条件,当为true时,list和listFiles方法会把这个文件加入到返回的数组里,false时则不会加入
- */
- publicbooleanaccept(Filedir,Stringfilename){
- //TODOAuto-generatedmethodstub
- return(filename.endsWith(".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 stubreturn (filename.endsWith(".mp3"));}}
// 将这个文件显示在Listview 下 。我这里用的SimpleAdapter适配器去实现的。这里要两个xml.SetAlarm.this是这个本地Activity
Java代码- privatevoidListSongsName(){
- //首先是要得到music文件的路径
- Filefile=newFile(MUSIC_PATH);
- List<Map<String,Object>>list=newArrayList<Map<String,Object>>();
- //将所有的文件加入到一个list文件中
- if(file.list(newmusicfilter()).length>0){
- for(Filefile1:file.listFiles(newmusicfilter())){
- Map<String,Object>map=newHashMap<String,Object>();
- map.put("filename",newEFfile(file1).getFile().getName());
- list.add(map);
- }
- }
- SimpleAdaptersa=newSimpleAdapter(SetAlarm.this,list,
- R.layout.musiclist,newString[]{"filename"},newint[]{R.id.MusicItem});
- listview.setAdapter(sa);
- }
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代码- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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>
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android(安卓)根文件系统启动分析
- Android最火的框架系列(三)JiaoZiVideoPlayer
- Android(安卓)Studio Git初体验
- Android(安卓)系统编译与调试
- 关于Android(安卓)NDK中调用第三方的动态库