Android编写文件浏览器的实现方法

网址简介:未填写

更新时间:11个月前

访问次数:110

详细介绍

我们在编写程序的时候,会需要浏览一些文件,但应用本身并不是与文件管理相关的应用,可能只是一个功能,需要让用户选择文件进行后续操作,那么编写文件的实现方法大家了解吗?一起来跟着爱站技术频道小编看看吧!

如:

  import java.io.File;   import java.util.ArrayList;   import java.util.HashMap;   import java.util.List;   import java.util.Map;      import android.util.Log;      public class FileUtils {     /**      * 获取当前目录下的所有文件或文件夹      * @param path 路径      * @return      */     public static List<Map<String,Object>> GetPathFilsList(String path) {       List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();       List<Map<String,Object>> filelist = new ArrayList<Map<String,Object>>();       try {         String[] Files = new File(path).list();         for(String file : Files){           Map<String, Object> map = new HashMap<String, Object>();           if(new File(path+file).isDirectory()){             map.put("isDirectory",2);             map.put("fileName", file);                          list.add(map);           }else {             map.put("isDirectory", 1);             map.put("fileName", file);                          filelist.add(map);           }                             }         list.addAll(filelist);         return list;       } catch (Exception e) {         // TODO: handle exception         e.printStackTrace();         return null;       }     }   }     

这里会将文件和文件夹区分出来,便于显示区分。

之后我们需要用到一个适配器,用于显示这些数据的ListView

 

  private class FileBrowserAdapter extends BaseAdapter{       private List<Map<String, Object>> fileList;       private Context context;          public FileBrowserAdapter(Context Context,           List<Map<String, Object>> fileList) {         this.fileList = fileList;         this.context = context;       }          @Override       public int getCount() {         return fileList == null ? 0 : fileList.size();       }          @Override       public Object getItem(int position) {         return fileList.get(position);       }          @Override       public long getItemId(int position) {         return position;       }          @SuppressLint("InflateParams")       @Override       public View getView(int position, View convertView, ViewGroup parent) {            LayoutInflater mInflater = LayoutInflater             .from(getApplicationContext());         View view = null;         view = mInflater.inflate(R.layout.file_list_item, null);         ImageView image = (ImageView) view             .findViewById(R.id.file_list_item_image);         if (Integer             .parseInt(fileList.get(position).get("isDirectory") + "") == 2)           image.setImageResource(R.drawable.folder);         else if (Integer.parseInt(fileList.get(position).get("isDirectory")             + "") == 1)           image.setImageResource(R.drawable.documents);         TextView textView = (TextView) view             .findViewById(R.id.file_list_item_testview);         textView.setTextColor(Color.BLACK);         textView.setText(fileList.get(position).get("fileName") + "");         return view;          }          }     

最后我们需要实现这些

  dir = Environment.getExternalStorageDirectory()           .getAbsolutePath() + "/";       fileListView = (ListView) findViewById(R.id.file_listview);       listItemClickListener = new FileListItemClickListener();   //   //设置点击事件       fileListView.setOnItemClickListener(listItemClickListener);       fileList = FileUtils.GetPathFilsList(dir);       if (new File(dir).getParent() != null) {         Map<String, Object> map = new HashMap<String, Object>();         map.put("isDirectory", 0);         map.put("fileName", new File(dir).getParent());         fileList.add(0, map);          }       FileBrowserAdapter phoneFileBrowserAdapter = new FileBrowserAdapter(           getApplicationContext(), fileList);       fileListView.setAdapter(phoneFileBrowserAdapter);     

效果图:

Android编写文件浏览器的实现方法-第1张图片

Android编写文件浏览器的实现方法大家学习的怎样呢?我们要在有时间的时候充电学习,这样我们在遇到这个问题的时候,才不至于手足无措。

请发表您的评论