版权声明:本文为博主原创文章,未经博主允许不得转载。

     

[java] view plaincopy
  1. import java.io.File;
  2. import java.util.*;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.os.*;
  6. import android.view.*;
  7. import android.widget.*;
  8. import android.widget.AdapterView.OnItemClickListener;
  9. import android.widget.ImageView.ScaleType;
  10. public class FileBrowser extends Activity {
  11. private ListView mainListView=null;
  12. private List<Map<String,Object>> list=null;
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. this.setTitle("文件浏览器");
  16. mainListView=new ListView(this);
  17. setContentView(mainListView);
  18. File file=Environment.getRootDirectory();
  19. String pathx=file.getAbsolutePath();
  20. this.setTitle(pathx);
  21. //android的总目录就是"/"
  22. list_init("/");
  23. }
  24. void list_init(String path){
  25. File file=new File(path);
  26. File[] fileList=file.listFiles();
  27. list=new ArrayList<Map<String,Object>>();
  28. Map<String,Object> item;
  29. item=new HashMap<String,Object>();
  30. if(path.equals("/")){
  31. item.put("ico",R.drawable.home);
  32. item.put("name","总目录列表");
  33. item.put("path","/");
  34. list.add(item);
  35. }else{
  36. item.put("ico",R.drawable.back);
  37. item.put("name","返回上一级");
  38. item.put("path",file.getParent());
  39. list.add(item);
  40. }
  41. for(int i=0;i<fileList.length;i++){
  42. item=new HashMap<String,Object>();
  43. if(fileList[i].isDirectory()){
  44. if(fileList[i].list().length<1){
  45. item.put("ico",R.drawable.file1);
  46. }else{
  47. item.put("ico",R.drawable.file2);
  48. }
  49. }else{
  50. item.put("ico",R.drawable.content);
  51. }
  52. item.put("name",fileList[i].getName());
  53. item.put("path",fileList[i].getAbsolutePath());
  54. list.add(item);
  55. }
  56. MyAdapter ma=new MyAdapter(this,list);
  57. //mainListView=new ListView(this);
  58. mainListView.setAdapter(ma);
  59. mainListView.setOnItemClickListener(new OnItemClickListener(){
  60. public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
  61. if(arg2>0 && (Integer)(list.get(arg2).get("ico"))==R.drawable.content){
  62. //非文件夹图标,点击无效
  63. }else{
  64. //打开下一级文件目录列表
  65. list_init((String)(list.get(arg2).get("path")));
  66. }
  67. }
  68. });
  69. this.setTitle(path);
  70. }
  71. public class MyAdapter extends BaseAdapter{
  72. Context context=null;
  73. List<Map<String,Object>> list=null;
  74. MyAdapter(Context context,List<Map<String,Object>> list){
  75. this.context=context;
  76. this.list=list;
  77. }
  78. public int getCount() {return list.size();}
  79. public Object getItem(int position) {return position;}
  80. public long getItemId(int position) {return position;}
  81. public View getView(int position, View convertView, ViewGroup parent) {
  82. LinearLayout returnView=new LinearLayout(context);
  83. returnView.setLayoutParams(new ListView.LayoutParams(-1,-2));//注意:ListView.LayoutParams
  84. //图标
  85. ImageView iv=new ImageView(context);
  86. LinearLayout.LayoutParams lp_iv=new LinearLayout.LayoutParams(-2,-2);
  87. lp_iv.rightMargin=10;
  88. iv.setLayoutParams(lp_iv);
  89. iv.setScaleType(ScaleType.CENTER_INSIDE);
  90. iv.setImageResource((Integer)((list.get(position)).get("ico")));
  91. returnView.addView(iv);
  92. //文件名
  93. TextView name=new TextView(context);
  94. LinearLayout.LayoutParams lp_tv=new LinearLayout.LayoutParams(-2,-2);
  95. name.setLayoutParams(lp_tv);
  96. name.setTextSize(name.getTextSize()+10);
  97. name.setText((String)(list.get(position).get("name")));
  98. returnView.addView(name);
  99. //
  100. return returnView;
  101. }
  102. }
  103. }

转载于:https://www.cnblogs.com/Free-Thinker/p/7463959.html

Android入门之文件系统操作(一)简单的文件浏览器相关推荐

  1. 安卓手机如何打开php文件夹,Android_Android中调用系统的文件浏览器及自制简单的文件浏览器,调用系统自带的文件浏览器- phpStudy...

    Android中调用系统的文件浏览器及自制简单的文件浏览器 调用系统自带的文件浏览器这很简单: /** 调用文件选择软件来选择文件 **/ private void showFileChooser() ...

  2. 20. [Python GUI] PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子

    PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子 一.使用模型/视图实现一个简单的文件浏览器 二.小手一抖,点个赞再走哦~ 一.使用模型/视图实现一个简单的文件浏览器 这个例子里不涉及数据 ...

  3. Android 开发基于Webview 自制一个简单的手机浏览器

    初衷: 虽然现在市场上浏览器很多,比如chrome,夸克,没有广告,新闻等乱七八糟的东西,页面简单清晰,但是自己的浏览记录还是存放在别人的服务器,就算删除了,开隐身模式了,但是具体后台的操作谁又知道呢 ...

  4. Linux系统的快照是什么,linux – 文件系统快照与简单复制文件有何不同?

    通过做这个, # btrfs subvolume snapshot /mnt/1 /mnt/1/snapshot # tree /mnt/1 /mnt/1 ├── a ├── snapshot │ ├ ...

  5. Linux实战技巧--文件系统操作(一)--文件查看(pwd/ls/cd)

    文件查看 pwd:显示当前的目录名称 ls:查看当前目录下的文件 cd:更改当前的操作目录 pwd–显示当前的目录 示例: pwd ls–查看当前目录下的文件 命令:ls [选项,选项...] 参数. ...

  6. java浏览文件夹_一个用java实现简单的文件浏览器

    [java]代码库import java.awt.*; import java.awt.event.*; import java.net.URL; import javax.swing.*; //文件 ...

  7. 树莓派3B+采用花生棒进行内网穿透,从拆箱到实现SSH远程控制与sftp简单远程文件上传下载

    树莓派3B+采用花生棒进行内网穿透,使用sftp实现远程控制与简单远程文件上传下载) 准备步骤 物理环境搭建 关于基础配置的博文推荐 树莓派联网配置 基础联网 配置静态ip 花生壳内网穿透 常用远程端 ...

  8. (4)Android入门——android四大组件基础介绍及打电话,发短信简单应用 单元测试

    1,本章是android入门最后一篇,从后面开始将进入进阶阶段.我也会加快更新速度.但愿能保持每天三篇博文的数量.但是是在保证质量的前提下.后面我还会发布一些实际开发中用到的应用案例.敬请关注! 应用 ...

  9. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

最新文章

  1. oracle期末重点,oracle期末复习题及答案
  2. onnxruntime安装
  3. 安卓无需root权限小黄鸟抓包教程
  4. DCMTK:演示状态查看器-网络接收组件(存储SCP)
  5. SpringSecurity权限控制之异常处理方式一
  6. 干翻Java_Java第三次作业第一题
  7. [html] HTML5的video在手机端如何实现进来页面时就自动播放?
  8. Limit与skip
  9. 如何在计算机桌面上增添word,怎么在桌面添加Word文档
  10. CSDN开设博客专栏的方法
  11. 逼死强迫症?聊聊应用推送角标的那些事儿
  12. html5移动端单视频播放代码,js移动端视频播放代码
  13. 职场泥潭,这样的IT公司绝对不宜久留
  14. idea 一直不停的updating index
  15. 个性化海报在爱奇艺视频推荐场景中的实践
  16. 掌握成为优秀财务的核心能力
  17. 工具类commons-io的Tailer用法,用来监控文件内容的变化情况
  18. Android版本10和20有什区别,荣耀v10和v20哪个好?荣耀V20和荣耀V10区别对比
  19. led数码显示控制plc实验_实验三led数码显示控制plc实验报告
  20. SourceInsight4.0自定义编译命令

热门文章

  1. 【C#桌面应用】第二节:利用Visual Studio2019 创建桌面应用
  2. 轻松使用计算机,职称计算机Excel辅导:简单四招让你使用Excel轻松提速
  3. word2vec相似度计算_干货|文本相似度计算
  4. colorpix取色小工具_五款互联网人必备的免费工具,超级实用
  5. Java笔记-AnnotationConfigApplicationContext在Spring中的例子
  6. canvas笔记-二次贝塞尔曲线与三次贝塞尔曲线的用法
  7. Java基础入门笔记-多态
  8. C/C++屏幕恶搞程序
  9. java arraybound out_java – 获取ArrayIndexOutOfBound:1异常
  10. [git] git fsck --lost-found命令用法