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

     

  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. }

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

  1. Android入门之文件系统操作(二)文件操作相关指令

    (一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 //fileList.getAbsolutePath()为"/ ...

  2. Android入门之文件系统操作

    Android入门之文件系统操作(二)文件操作相关指令 (转)   (一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 // ...

  3. Android入门之文件系统操作(一)简单的文件浏览器 (转)

    Android入门之文件系统操作(一)简单的文件浏览器 (转)        import java.io.File; import java.util.*; import android.app.A ...

  4. Androlid入门之文件系统操作(三)文件读写

         import java.io.*; import android.app.Activity; import android.os.Bundle; import android.view.Vi ...

  5. php写的非常简单的文件浏览器

    php写的非常简单的一个文件浏览器,仅供参考. <?php /** * php文件浏览程序函数 showDir() * * $dirName 输入目录路径,默认php文件一级目录,不需输入: * ...

  6. Xamarin.Android 入门之:Bind java的jar文件+Android显示gif图片

    一.引言 在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件.那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码. 关于bi ...

  7. javaSE——简单的文件浏览器

    import java.io.File; public class Demo02 { public static void main(String[]args){ File file = new Fi ...

  8. (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理

    介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...

  9. Linux基础入门-文件系统操作与磁盘管理

    一.简单文件系统操作: df (-h) 查看磁盘容量: rootfs作为系统启动时内核载入内存之后,在挂载真正的磁盘之前的一个临时文件系统: /dev/sda2 对应主机硬盘的分区,后面的a表示第几块 ...

随机推荐

  1. 升级Xcode或 MacOS编译iOS出现resource fork, Finder information, or similar detritus not allowed

    很久没有在网上留下足迹了,冒个泡吧 最近升级了Xcode,编译之前的一个项目是出现问题,问题结尾如下: resource fork, Finder information, or similar de ...

  2. 用Grunt进行CSS文件压缩

    假设你的项目的CSS文件全部放在项目目录下名为css的文件夹中,现在将它压缩合并成一个名为main-min.css的文件,放在css-min文件夹下. (1)首先保证机器安装了node.js. (2) ...

  3. 顺序表查找及其优化(Java)

    顺序表查找(线性查找): private static void Ordersearch(int[] arr,int num) { for (int i = 0; i < arr.length; ...

  4. 011--c数组--排序--组成最大数

    数组--排序--组成最大数   组成最大数   任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入 1593 ,则输出为 9531 . 输入: 自然数 n 输出: 各位数字组成的最大数 ...

  5. zabbix配置邮件报警(第四篇)

    zabbix配置邮件报警(第四篇) 邮件报警可采用本地邮件服务,也可以自定义脚本,这里我采用本地邮件服务报警 添加收件人

  6. 如何创建一个项目,让gitlab自动触发jenkins进行构建

    前进是:你已经配置好jenkins+gitlab自动化布置了,这里只是常规构建新的项目时,需要做的配置,记录下来,以免忘了又着急 参考这篇博客: https://www.jianshu.com/p/e ...

  7. javascript 大数据处理方法

    随着前端的飞速发展,在浏览器端完成复杂的计算,支配并处理大量数据已经屡见不鲜.那么,如何在最小化内存消耗的前提下,高效优雅地完成复杂场景的处理,越来越考验开发者功力,也直接决定了程序的性能. 本文展现 ...

  8. Android 动态设置 layout_centerInParent

    RelativeLayout.LayoutParams rp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutPa ...

  9. MySQL中是索引

    MySQL中是索引: --.唯一索引: 一行中的内容不能一样, create t2( id int , num int, unique weiyisuiyin (id,num) ) --唯一; --约 ...

  10. vue 项目的I18n国际化之路

    I18n (internationalization ) ---未完善 产品国际化是产品后期维护及推广中重要的一环,通过国际化操作使得产品能更好适应不同语言和地区的需求 国际化重点:1. 语言语言本地 ...