• 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. }  
  • 相关阅读:
    Linux 循环遍历文件目录
    批量修改文件名
    PostgreSQL 常用的命令
    批量修改文件格式到UTF-8
    wireshark:no interface can be used for capturing in this system with the current configuration
    使用画图方法显示排序算法,使用策略模式
    F#
    Linux下utf-8 BOM 的检查和删除 (65279错误解决办法)
    java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
    unbuntu 14安装 golang
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/7463959.html
Copyright © 2020-2023  润新知