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; 
  } 

 } 
  }
 

  

原文地址:https://www.cnblogs.com/geniusxjq/p/4081522.html