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

      

   import java.io.File;
import java.util.*; import android.app.Activity;
import android.content.Context;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView.ScaleType; public class FileBrowser extends Activity { private ListView mainListView=null;
private List<Map<String,Object>> list=null; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle("文件浏览器");
mainListView=new ListView(this);
setContentView(mainListView); File file=Environment.getRootDirectory();
String pathx=file.getAbsolutePath();
this.setTitle(pathx);
//android的总目录就是"/"
list_init("/");
} void list_init(String path){
File file=new File(path);
File[] fileList=file.listFiles();
list=new ArrayList<Map<String,Object>>();
Map<String,Object> item;
item=new HashMap<String,Object>();
if(path.equals("/")){
item.put("ico",R.drawable.home);
item.put("name","总目录列表");
item.put("path","/");
list.add(item);
}else{
item.put("ico",R.drawable.back);
item.put("name","返回上一级");
item.put("path",file.getParent());
list.add(item);
}
for(int i=0;i<fileList.length;i++){
item=new HashMap<String,Object>();
if(fileList[i].isDirectory()){
if(fileList[i].list().length<1){
item.put("ico",R.drawable.file1);
}else{
item.put("ico",R.drawable.file2);
}
}else{
item.put("ico",R.drawable.content);
}
item.put("name",fileList[i].getName());
item.put("path",fileList[i].getAbsolutePath());
list.add(item);
}
MyAdapter ma=new MyAdapter(this,list);
//mainListView=new ListView(this);
mainListView.setAdapter(ma);
mainListView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
if(arg2>0 && (Integer)(list.get(arg2).get("ico"))==R.drawable.content){
//非文件夹图标,点击无效
}else{
//打开下一级文件目录列表
list_init((String)(list.get(arg2).get("path")));
}
}
});
this.setTitle(path);
} public class MyAdapter extends BaseAdapter{ Context context=null;
List<Map<String,Object>> list=null; MyAdapter(Context context,List<Map<String,Object>> list){
this.context=context;
this.list=list;
}
public int getCount() {return list.size();}
public Object getItem(int position) {return position;}
public long getItemId(int position) {return position;} public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout returnView=new LinearLayout(context);
returnView.setLayoutParams(new ListView.LayoutParams(-1,-2));//注意:ListView.LayoutParams
//图标
ImageView iv=new ImageView(context);
LinearLayout.LayoutParams lp_iv=new LinearLayout.LayoutParams(-2,-2);
lp_iv.rightMargin=10;
iv.setLayoutParams(lp_iv);
iv.setScaleType(ScaleType.CENTER_INSIDE);
iv.setImageResource((Integer)((list.get(position)).get("ico")));
returnView.addView(iv);
//文件名
TextView name=new TextView(context);
LinearLayout.LayoutParams lp_tv=new LinearLayout.LayoutParams(-2,-2);
name.setLayoutParams(lp_tv);
name.setTextSize(name.getTextSize()+10);
name.setText((String)(list.get(position).get("name")));
returnView.addView(name);
//
return returnView;
} }
}

  

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

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

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

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

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

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

    版权声明:本文为博主原创文章,未经博主允许不得转载.       import java.io.File; import java.util.*; import android.app.Activit ...

  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. linux备忘录-vi和vim

    知识点 vi的三种模式 一般模式 按 ESC 可回到一般模式 相关按键 j 代表 向下按钮 k 代表 向上按钮 h 代表 向左按钮 l 代表 向右按钮 20j 等代表 向下移动20行 Ctrl + f ...

  2. Android记事本06

    昨天: activity的生命周期 今天: activity横竖屏切换的生命周期 遇到的问题: 为了匹配ADK,下载了更旧的版本SDK,布局文件仍然无法显示.

  3. favicon.ico generator

    favicon.ico generator https://www.favicon-generator.org/ https://www.favicon.cc/ https://www.favicon ...

  4. 【距离GDKOI:44天&GDOI:107天】【BZOJ1040】[ZJOI2008] 骑士 (环套树DP)

    其实已经准备退役了,但GDOI之前还是会继续学下去的!!当成兴趣在学,已经对竞赛失去信心了的样子,我还是回去跪跪文化课吧QAQ 第一道环套树DP...其实思想挺简单的,就把环拆开,分类处理.若拆成开的 ...

  5. [codeforces] 97B Superset || 平面分治

    原题 给出一个平面的一些点,让你添加点,使得所有点对满足以下三个要求中的一个: 1.在一个水平面上 2.在一个竖直线上 3.以这两个点为对角的矩形内包含有其他点 输出一种可行解 因为只需要可行解,且只 ...

  6. BZOJ4826 [Hnoi2017]影魔 【线段树 + 单调栈】

    题目链接 BZOJ4826 题解 蒟蒻智力水平捉急orz 我们会发现相邻的\(i\)和\(j\)贡献一定是\(p1\),可以很快算出来[然而我一开始忘了考虑调了半天] 我们现在只考虑不相邻的 我们只需 ...

  7. RHN Classic and Red Hat Subscription Management

    What's the difference between RHN Classic and Red Hat Subscription Management? Introduction With the ...

  8. tips server ssh 正向 反向 代理

    1. ssh userxxxxname@115.28.87.102           (直接使用ssh的连接方式连接到远程主机,而不是使用http,ftp等方式连接到具体远程主机)          ...

  9. 百度之星初赛(A)——T5

    今夕何夕 Problem Description 今天是2017年8月6日,农历闰六月十五. 小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨. 为了排遣郁结,它决定思考一个数学问题 ...

  10. jquery offset tip

    /* * 这是一张 JavaScript 代码草稿纸. * * 输入一些 JavaScript,然后可点击右键或从“执行”菜单中选择: * 1. 运行 对选中的文本求值(eval) (Ctrl+R): ...