歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android入門之文件系統操作

Android入門之文件系統操作

日期:2017/3/1 11:17:29   编辑:Linux編程

Android入門之文件系統操作——簡單的文件浏覽器

  1. import java.io.File;
  2. import java.util.*;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.os.*;
  6. import android.view.*;
  7. import android.widget.*;
  8. import android.widget.AdapterView.OnItemClickListener;
  9. import android.widget.ImageView.ScaleType;
  10. public class FileBrowser extends Activity {
  11. private ListView mainListView=null;
  12. private List<Map<String,Object>> list=null;
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. this.setTitle("文件浏覽器");
  16. mainListView=new ListView(this);
  17. setContentView(mainListView);
  18. File file=Environment.getRootDirectory();
  19. String pathx=file.getAbsolutePath();
  20. this.setTitle(pathx);
  21. //android的總目錄就是"/"
  22. list_init("/");
  23. }
  24. void list_init(String path){
  25. File file=new File(path);
  26. File[] fileList=file.listFiles();
  27. list=new ArrayList<Map<String,Object>>();
  28. Map<String,Object> item;
  29. item=new HashMap<String,Object>();
  30. if(path.equals("/")){
  31. item.put("ico",R.drawable.home);
  32. item.put("name","總目錄列表");
  33. item.put("path","/");
  34. list.add(item);
  35. }else{
  36. item.put("ico",R.drawable.back);
  37. item.put("name","返回上一級");
  38. item.put("path",file.getParent());
  39. list.add(item);
  40. }
  41. for(int i=0;i<fileList.length;i++){
  42. item=new HashMap<String,Object>();
  43. if(fileList[i].isDirectory()){
  44. if(fileList[i].list().length<1){
  45. item.put("ico",R.drawable.file1);
  46. }else{
  47. item.put("ico",R.drawable.file2);
  48. }
  49. }else{
  50. item.put("ico",R.drawable.content);
  51. }
  52. item.put("name",fileList[i].getName());
  53. item.put("path",fileList[i].getAbsolutePath());
  54. list.add(item);
  55. }
  56. MyAdapter ma=new MyAdapter(this,list);
  57. //mainListView=new ListView(this);
  58. mainListView.setAdapter(ma);
  59. mainListView.setOnItemClickListener(new OnItemClickListener(){
  60. public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
  61. if(arg2>0 && (Integer)(list.get(arg2).get("ico"))==R.drawable.content){
  62. //非文件夾圖標,點擊無效
  63. }else{
  64. //打開下一級文件目錄列表
  65. list_init((String)(list.get(arg2).get("path")));
  66. }
  67. }
  68. });
  69. this.setTitle(path);
  70. }
  71. public class MyAdapter extends BaseAdapter{
  72. Context context=null;
  73. List<Map<String,Object>> list=null;
  74. MyAdapter(Context context,List<Map<String,Object>> list){
  75. this.context=context;
  76. this.list=list;
  77. }
  78. public int getCount() {return list.size();}
  79. public Object getItem(int position) {return position;}
  80. public long getItemId(int position) {return position;}
  81. public View getView(int position, View convertView, ViewGroup parent) {
  82. LinearLayout returnView=new LinearLayout(context);
  83. returnView.setLayoutParams(new ListView.LayoutParams(-1,-2));//注意:ListView.LayoutParams
  84. //圖標
  85. ImageView iv=new ImageView(context);
  86. LinearLayout.LayoutParams lp_iv=new LinearLayout.LayoutParams(-2,-2);
  87. lp_iv.rightMargin=10;
  88. iv.setLayoutParams(lp_iv);
  89. iv.setScaleType(ScaleType.CENTER_INSIDE);
  90. iv.setImageResource((Integer)((list.get(position)).get("ico")));
  91. returnView.addView(iv);
  92. //文件名
  93. TextView name=new TextView(context);
  94. LinearLayout.LayoutParams lp_tv=new LinearLayout.LayoutParams(-2,-2);
  95. name.setLayoutParams(lp_tv);
  96. name.setTextSize(name.getTextSize()+10);
  97. name.setText((String)(list.get(position).get("name")));
  98. returnView.addView(name);
  99. //
  100. return returnView;
  101. }
  102. }
  103. }
Copyright © Linux教程網 All Rights Reserved