zoukankan      html  css  js  c++  java
  • 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; 
      } 
    
     } 
      }
     
    

      

  • 相关阅读:
    在 Solaris 下有内核参数对应 TIME_WAIT 状态保持时间
    Properties获取属性
    jQuery Validate 动态添加验证
    解决struts2 action中double型在页面默认带有小数点的方法
    jsp、java下载附件
    方法参数数量不确定时应该怎么做?
    eclipse的java转web项目
    iBatis批量操作
    ORA19706和_external_scn_rejection_threshold_hours的前世今生
    Oracle官方书籍阅读顺序
  • 原文地址:https://www.cnblogs.com/geniusxjq/p/4081522.html
Copyright © 2011-2022 走看看