文件浏览器
16lz
2021-01-23
[代码 步骤]
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" ><Buttonandroid:id="@+id/previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Back " android:gravity="right" /> <TextViewandroid:id="@+id/path" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /></LinearLayout><ListViewandroid: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 stubvalue = getPreviousList();adapter.notifyDataSetChanged();} });
done!
更多相关文章
- 自定义圆角button上下间距问题
- Android Wifi模块相关常量定义.
- Android签名文件生成
- android获取指定路径下目录文件
- Android 自定义ProgressBar--进度自己设置图片
- android之PopUpWindow显示Listview(文件列表)
- Android 不能生成R文件,gen目录为空