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

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

      

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

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

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

(一)获取总根 [java] view plain copy File[] fileList=File.listRoots(); //返回fileList.length为1 //fileList.getAbsolutePath()为"/" //这就是系统的总根 (二)打开总根目录 [java] view plain copy File file=new File("/"); File[] fileList=file.listFiles(); //获取的目录中除了&q

Android入门之文件系统操作

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

Android简单的文件浏览器,ListActivity的简单用法

2014-07-29 13:39:09MainActivity.java package com.example.sample_4_21; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.AlertDialog; import android.app.ListActivity; import android.content.DialogInterface; imp

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

php写的非常简单的一个文件浏览器,仅供参考. <?php /** * php文件浏览程序函数 showDir() * * $dirName 输入目录路径,默认php文件一级目录,不需输入: * $i 函数嵌套层数计数,函数自己调用,不需输入: * $d 函数传递的目录路径,函数自己调用,不需输入. * * 说明:程序用函数嵌套实现. * 本程序只能浏览php文件一级和下一级目录内容,且下一级目录内无法判断文件类型. * 因为is_dir和is_file函数在下一级目录内全都返回false,使程

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

一.引言 在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件.那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码. 关于bind jar更详细的内容可以查看https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/ ,这边只是做最简单的绑定. 二.Bind JAR 现在我想做一个功能,使在手机中显示gif图片,普

简单文件浏览器--实现简易文件选取返回路径功能

因为今天学习Andorid Sample一个示例的时候需要使用一个选取图片的功能,示例中给的Intent没有办法用,因此,自己搜集资料来实现这个简单的文件浏览器,主要这两个文件就贴在下面了: 首先是模型层,定义显示的文件实体(保存文件对应的Icon和其简易名称与绝对路径) 1 public class DirEntry { 2 private int icon; 3 private String dirName; 4 private String path; 5 6 public String

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

介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前面省略了关于 Linux 文件系统的一些基本知识,也因为我们是在线实验环境,所以也避开了很少一部分但又十分重要的关于硬件的内容,我们只能期待用户能够抱着提高自学能力的心态自己去补充相关的知识. 一.简单文件系统操作 1.查看磁盘和目录的容量 使用 df 命令查看磁盘的容量 $ df 在实验楼的环境中

小猪的Android入门之路 Day 8 part 2

小猪的Android入门之路 Day 8 part 2 Android网络编程浅析--Android访问网络资源 --转载请注明出处:coder-pig 本节引言: 在part 1中我们学习了网络交互中用得较多的xml文件的相关概念,以及在Android中常用的 解析XML三种不同形式,分别SAX,DOM,Pull三种不同的解析方式;而在part 2中我们将会 讲解我们的应用如何去获取网络上的资源,分别是图片,HTML代码,XML代码和JSON数据; 好了,废话就这么多,开始本节的课程吧!从这p

小猪的Android入门之路 Day 8 part 4

小猪的Android入门之路 Day 8 part 4 Android网络编程浅析--Android网络数据的上传 --转载请注明出处:coder-pig 本节引言: 在part 3中我们已经学习了Android网络数据的下载,难点是多线程断点续传下载; 有下载,当然也有上传啦,本节就来研究下Android中的网络数据的上传! 1.使用GET或者Post方式上传数据给服务器 2.使用开源框架HttpClient上传数据到服务区 3.发送xml数据给服务器 4.通过Http协议上传文件 5.Web