MainActivity.java

package lee.sdcard;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {    private ListView listView;//文件目录ListViewprivate GridView toolbarGrid;//工具条    private TextView title;//标题-路径    private List fileName=null; //文件名称private List fileNum=null; //记录文件大少或者有多少个子目录private List filePath=null;//文件路径private List isFile=null;//是否文件夹    private boolean flag = true;    private String sdCardPath;//SD卡根路径    private String parentPath;//路径的上级    /** 底部菜单图片 **/int[] menu_toolbar_image_array = { R.drawable.menu_paste,R.drawable.controlbar_back, R.drawable.menu_penselectmodel,R.drawable.menu_quit };/** 底部菜单文字 **/String[] menu_toolbar_name_array = { "主目录", "返回", "确定", "退出" };            public void toast(String msg){    Toast.makeText(this, msg, 1).show();    }        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){                toast("Sd卡不存在");        }    sdCardPath=Environment.getExternalStorageDirectory().getPath();    //    File fff=new File(sdCardPath+"/test/ddd");//    if(!fff.exists())fff.mkdirs();                listView=(ListView) findViewById(R.id.list_view);        title=(TextView) findViewById(R.id.title2);                        getFileDir(sdCardPath);                        // 创建底部菜单 ToolbartoolbarGrid = (GridView) findViewById(R.id.filedir_toolbar);//获取底部的GridView控件toolbarGrid.setNumColumns(4);// 设置每行列数toolbarGrid.setAdapter(getMenuAdapter(menu_toolbar_name_array,menu_toolbar_image_array));// 设置菜单Adapter。调用getMenuAdapter方法构造MAP参数/** 监听底部菜单选项 **/toolbarGrid.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {switch (arg2) {case 0://首页    getFileDir(sdCardPath);break;case 1://返回getFileDir(parentPath);title.setText("路径:"+parentPath);break;case 2:// TODO Auto-generated method stubbreak;case 3:MainActivity.this.finish();break;}}});                                                    }        /** * 构造菜单Adapter * @param menuNameArray 名称 * @param imageResourceArray 图片 * @return SimpleAdapter */private SimpleAdapter getMenuAdapter(String[] menuNameArray,int[] imageResourceArray) {ArrayList> data = new ArrayList>();for (int i = 0; i < menuNameArray.length; i++) {HashMap map = new HashMap();map.put("itemImage", imageResourceArray[i]);map.put("itemText", menuNameArray[i]);data.add(map);}SimpleAdapter simperAdapter = new SimpleAdapter(this,//上下文data,//数据源R.layout.item_menu, //绑定的视图new String[] { "itemImage", "itemText" },//绑定数据源对应的标题new int[] { R.id.item_image, R.id.item_text });//绑定视图对应的控件return simperAdapter;}    /** * 获取路径的子目录列表 * @param path 路径 */private void getFileDir(String path) {File f = new File(path);//建立文件   if(!path.equals(sdCardPath)){//判断文件是否SD卡根路径parentPath = f.getParent();//如果不是根路径就获取该路径的上级路径}elseparentPath = sdCardPath;//如果是根路径就         //初始化存放个数据的ListfileName = new ArrayList();fileNum = new ArrayList();filePath = new ArrayList();isFile = new ArrayList();File file=new File(path);//获取接收进来的路径int fileSize = file.list().length;//获取路径一共有多少个子文件//第一次遍历存放文件夹for(int i=0;i> list =new ArrayList>();for(int i=0;i map =new HashMap();map.put("fileName", fileName.get(i));map.put("filePath", filePath.get(i));map.put("fileNum", fileNum.get(i));//判断是文件夹还是图片,显示不同的图片if(isFile.get(i)){map.put("fileImage",  R.drawable.image_folder);map.put("isFileImage", R.drawable.list_icon);}else if(fileName.get(i).endsWith(".jpg")){map.put("fileImage",  R.drawable.imagefile);map.put("isFileImage", R.drawable.list_icon);}list.add(map);}SimpleAdapter adapter=new SimpleAdapter(MainActivity.this,list, R.layout.filedir_item,str,new int[]{R.id.item_image,R.id.item_name,R.id.item_icon,R.id.item_num});listView.setAdapter(adapter);listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {     Map map=(Map) parent.getItemAtPosition(position);// 获取点击的Item所绑定的数据   getFileDir(map.get("filePath").toString());//获取点击文件夹路径title.setText("路径:"+map.get("filePath").toString());//设置标题文字}});}/** * 格式化文件大少,显示KB/MB/GB * @param size * @return返回格式化的字符串 */    private String formatSize(long size) {        long SIZE_KB = 1024;        long SIZE_MB = SIZE_KB * 1024;        long SIZE_GB = SIZE_MB * 1024;        if(size < SIZE_KB) {   return  String.format( "%d B" , (int) size);   } else if(size < SIZE_MB) {   return  String.format( "%.2f KB" , (float)size / SIZE_KB);    } else if(size < SIZE_GB) {   return  String.format( "%.2f MB" , (float)size / SIZE_MB);   } else {   return  String.format( "%.2f GB" , (float)size / SIZE_GB);   }   } //@Override//public boolean onKeyDown(int keyCode, KeyEvent event) {//if(keyCode==KeyEvent.KEYCODE_BACK){//if(parentPath!=null)//    getFileDir(parentPath);// return true;//}//////return super.onKeyDown(keyCode, event);//}}

 

更多相关文章

  1. 12.6 时间与日期
  2. android的http工具类
  3. Android(安卓)使用Camera 打开预览Demo
  4. Android(安卓)build.gradle 问题:transformClassesWithPreJackPac
  5. Android(安卓)studio 添加JNI后报错
  6. Android(安卓)找不到so库(系统非公开库)文件
  7. Ubuntu系统下Android4.0源码开发多寄存器变量路口信号灯控制系统
  8. 10.Binder进阶:系统服务中的Binder
  9. Android(安卓)官方屏幕适配之ScreenMatch

随机推荐

  1. java版android Handler机制模型
  2. Android直播系统平台搭建之图片实现阴影
  3. Android实现雅虎新闻摘要加载视差动画效
  4. TextInput 需要注意的点
  5. 如何打造稳定、好用的 Android(安卓)Layo
  6. FFmpeg 调用 Android(安卓)MediaCodec 进
  7. Android(安卓)程序员的进阶之路(转)
  8. 开源分享!2021年最新 Android(安卓)资料汇
  9. Android(安卓)消息机制 你了解多少
  10. 一步教你超简单设置Android(安卓)Studio