码迷,mamicode.com
首页 > 移动开发 > 详细

Android入门之文件系统操作(一)简单的文件浏览器 (转)

时间:2014-11-07 16:40:53      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   io   color   ar   os   java   

Android入门之文件系统操作(一)简单的文件浏览器 (转)

 

bubuko.com,布布扣bubuko.com,布布扣

bubuko.com,布布扣      bubuko.com,布布扣

 

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

 

 

Android入门之文件系统操作(一)简单的文件浏览器 (转)

标签:android   style   blog   http   io   color   ar   os   java   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!