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入门之文件系统操作(一)简单的文件浏览器 (转)
Android入门之文件系统操作(一)简单的文件浏览器 (转) import java.io.File; import java.util.*; import android.app.A ...
- 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表示第几块 ...
随机推荐
- React Component 生命周期
一般而言 Component 有以下三种生命周期的状态: Mounting:已插入真实的 DOM Updating:正在被重新渲染 Unmounting:已移出真实的 DOM 针对 Component ...
- 六时出行 App iOS隐私政策
本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义务对待这些信息.除本隐私权政策另 ...
- Ubuntu无线转有线教程
本来想测试一下有线转无线的,奈何网卡不支持,所以就测试了一回无线转有线的测试!(真无聊,不过也算学习一下linux网桥的知识) ca0gu0@ub:~$ sudo brctl addbr br0 #添 ...
- (转)OGNL与值栈
http://blog.csdn.net/yerenyuan_pku/article/details/67709693 OGNL的概述 什么是OGNL 据度娘所说: OGNL是Object-Graph ...
- Win10电脑如何更改开机启动项
https://jingyan.baidu.com/article/5970355284f0458fc1074049.html
- Git学习总结(标签管理)
在Git中打标签非常简单,首先,切换到需要打标签的分支上: 然后,敲命令git tag <name>就可以打一个新标签: $ git tag v1. 可以用命令git tag查看所有标签: ...
- CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd)
CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd) Chosing between Chrony and N ...
- Java学习【第1篇】:数据类型(2019-02-13 11:00)
1.Java 基本数据类型 Java 的两大数据类型: 1.内置数据类型 byte.short.int.long.float.double.boolean.char 2.引用数据类型 指向一个对象, ...
- 计蒜客 劫富济贫 (Trie树)
链接 : Here! 思路 : Trie树裸题, 由开始给出的名字建一棵字典树, 然后每次查询一下抢♂劫的人名是否在字典树中, 复杂度也不清楚是多少, 反正是没给出 $M$ 的范围, 开始时用 $ha ...
- 洛谷——P1757 通天之分组背包
P1757 通天之分组背包 题目背景 直达通天路·小A历险记第二篇 题目描述 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包,他的物品大致可分为k组,每组中的物品 ...