栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android编写文件浏览器简单实现

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android编写文件浏览器简单实现

有时候我们保存文件总会用到文件浏览器功能.那么今天博主带大家做一个。

那么开始,浏览文件,我们就需要写一个文件工具类。

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 { 
   
  public static List> GetPathFilsList(String path) { 
    List> list = new ArrayList>(); 
    List> filelist = new ArrayList>(); 
    try { 
      String[] Files = new File(path).list(); 
      for(String file : Files){ 
 Map map = new HashMap(); 
 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> fileList; 
    private Context context; 
 
    public FileBrowserAdapter(Context Context, 
 List> 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 map = new HashMap(); 
      map.put("isDirectory", 0); 
      map.put("fileName", new File(dir).getParent()); 
      fileList.add(0, map); 
 
    } 
    FileBrowserAdapter phoneFileBrowserAdapter = new FileBrowserAdapter( 
 getApplicationContext(), fileList); 
    fileListView.setAdapter(phoneFileBrowserAdapter); 

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/160792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号