android学习笔记(一) 遍历SD卡中所有文件并在listview中显示

有关android SD卡操作中,遍历是最简单且最基础常用的操作。

 

下面就来实现遍历sd卡中所有文件,并且用一个ListView显示出来。

 

首先,了解一下ListView的用法。

 

android document中的解释:

A view that shows items in a vertically scrolling list. The items come from the ListAdapter associated with this view.

 

也就是说 listview是将一个ListAdapter的内容用图像显示出来, 

所以我们可以用一个SimpleAdapter来保存SD卡遍历的结果。

 

 

而我们知道linux文件系统是一颗单独的树(没有森林)。所以从根目录进行一次深搜就能访问所有节点。

 

 

而android SD卡的根目录为"/sdcard"。

 

 

 

 

调用getAllFiles(new File("/sdcard"))后所有文件保存在list中。

 

 

下面就是在将数据保存到SimpleAdapter中了。

 

查阅android document 其构造函数为:

public SimpleAdapter
 (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

其中

context为 显示listView的activity,

data为 数据,

resource为 listview中每一格单元格的布局xml的位置(res/layout/relative.xml,自己创建)

from 为listview中每一个item中组件(如一个item中含有2个textview--textview1,textview2)所对应的数据源。

to 为 form的数据源对应的item中组件的名称(textview1,textview2)。

 

所以需要将刚才得到的list数据转化成 List<? extends Map<String, ?>>类型

 

以下为转化函数

 

 

 

最后 通过listView 显示 方法为

 

 

listView的布局定义在main.xml中

 

listview中单元格的布局定义在relative.xml中

 

以下是运行效果(读取的sd卡为模拟器中的SD卡,在真机上运行,文件太多,会花费几秒钟时间读取,可以将上述递归遍历改进):

 

 

模拟SD卡 内容 请看我另一篇文章。

 

以下是所有代码(可运行):

 

 

AndroidMainfest.xml中一定要加上

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

//testSD.java

 

res/layout/main.xml

 

 

res/layout/relative.xml

 

 

 

 

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值