Android入门之文件系统操作(一)简单的文件浏览器 (转)
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入门之文件系统操作(一)简单的文件浏览器 (转)的更多相关文章
- Android入门之文件系统操作(二)文件操作相关指令
(一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 //fileList.getAbsolutePath()为"/ ...
- Android入门之文件系统操作
Android入门之文件系统操作(二)文件操作相关指令 (转) (一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 // ...
- Android入门之文件系统操作(一)简单的文件浏览器
版权声明:本文为博主原创文章,未经博主允许不得转载. import java.io.File; import java.util.*; import android.app.Activit ...
- Androlid入门之文件系统操作(三)文件读写
import java.io.*; import android.app.Activity; import android.os.Bundle; import android.view.Vi ...
- php写的非常简单的文件浏览器
php写的非常简单的一个文件浏览器,仅供参考. <?php /** * php文件浏览程序函数 showDir() * * $dirName 输入目录路径,默认php文件一级目录,不需输入: * ...
- Xamarin.Android 入门之:Bind java的jar文件+Android显示gif图片
一.引言 在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件.那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码. 关于bi ...
- javaSE——简单的文件浏览器
import java.io.File; public class Demo02 { public static void main(String[]args){ File file = new Fi ...
- (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理
介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...
- Linux基础入门-文件系统操作与磁盘管理
一.简单文件系统操作: df (-h) 查看磁盘容量: rootfs作为系统启动时内核载入内存之后,在挂载真正的磁盘之前的一个临时文件系统: /dev/sda2 对应主机硬盘的分区,后面的a表示第几块 ...
随机推荐
- (原)Unreal渲染相关的缓冲区 及其 自定义代码几种抓取
@authot: 白袍小道 转载说明那啥即可. (图片和本文无关,嘿嘿,坑一下) 以下为Unreal4.18版本中对GPUBuffer部分的分析结果 (插入:比之够着,知至目的) ...
- PAT——甲级1042:Shuffling Mashine
终于做到甲级了 就一个感觉....题目是真的看不懂,亏我还是四六级都过了的人....可是看完题愣是一点都不懂是什么意思. 1042 Shuffling Machine (20 point(s)) Sh ...
- springmvc和struts2的区别(转)
1.客户端浏览器发出HTTP请求. 2.根据web.xml配置,该请求被FilterDispatcher接收. 3.根据struts.xml配置,找到需要调用的Action类和方法, 并通过I ...
- sql server 中使用 LIKE 语句 SqlParameter 使用
原本写的 select * from table where name like '%@searchStr%' 怎么执行都不对,想想 参数是不能加 引号的 于是改为select * from tab ...
- SheetJS & Error: Sheet names cannot exceed 31 chars
SheetJS Error: Sheet names cannot exceed 31 chars title + version https://github.com/SheetJS/js-xlsx ...
- InfluxDB数据备份和恢复方法,支持本地和远程备份
本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Influ ...
- 【noip2016d2t3】状压DP+巧妙优化
题意可以简单这样考虑 给出n^2个集合(每个集合的元素不超过n),包含某个元素的集合至少有n个,选出最少的集合,使这些集合的并包含n个元素 n最大只有18 可以考虑状压n个元素,然后枚举n^2个集合 ...
- Window系统命令行调用控制面板程序
Window系统命令行调用控制面板程序 control.exe /name microsoft.folderoptions 启动资源管理器的 文件夹属性 选项卡 control.exe /name M ...
- 【距离GDKOI:44天&GDOI:107天】【BZOJ1040】[ZJOI2008] 骑士 (环套树DP)
其实已经准备退役了,但GDOI之前还是会继续学下去的!!当成兴趣在学,已经对竞赛失去信心了的样子,我还是回去跪跪文化课吧QAQ 第一道环套树DP...其实思想挺简单的,就把环拆开,分类处理.若拆成开的 ...
- 51NOD 1554 欧姆诺姆和项链 巧妙利用KMP
请戳这里! #include<cstdio> #define N 1000100 char s[N]; int n,k,nxt[N],ans[N]; int main() { scanf( ...