浏览 1576 次
锁定老帖子 主题:文件浏览器
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-21
最后修改:2010-06-17
[代码 步骤] 1. 定义所需界面 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom" > <Button android:id="@+id/previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Back " android:gravity="right" /> <TextView android:id="@+id/path" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
2. 定义一些后面用到的字符串常量 public final static String FILE_QUERY = "file_query"; public final static String FILE_NAME = "name"; public final static String FILE_TYPE = "type"; public final static String FILE_TYPE_FILE = "file"; public final static String FILE_TYPE_DIRECTORY = "directory";
3. 定义存放查询结果的数据结构 //1. 定义 List<Map<String,String>> value; //2. 初始化 value = new ArrayList<Map<String, String>>();
4. 定义与文件有关的变量 用于存放结果 //存放 查询目标 String target=""; //存放 查询目标的上级目录 String parent="";
5. 定义方法 用于查询目标的子文件/目录 public String updateNext(String s){ parent = target; target += "/" + s; return target; } public List<Map<String,String>> getNextList(String s){ String string = updateNext(s); if(checkIsFile(string)){ //string 就是你所需要的文件 string = updatePrevious(); } return list(string); }
6. 定义方法 用于查询目标的上级目录 public String updatePrevious(){ target = parent; File file = new File(parent); parent = file.getParent(); return target; } public List<Map<String,String>> getPreviousList(){ String string = updatePrevious(); return list(string); }
7. 注册查询事件: 当单击ListView 中某项 查询子文件/子目录 并刷新结果 list.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub String s = value.get((int)arg3).get("name"); value = getNextList(s); adapter.notifyDataSetChanged(); } });
8. 注册查询事件: 当返回Button时候 返回上级目录 并刷新结果 previous.setOnClickListener(new OnClickListener(){ public void onClick(View v) { // TODO Auto-generated method stub value = getPreviousList(); adapter.notifyDataSetChanged(); } });
done!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |