0

0

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

高洛峰

高洛峰

发布时间:2017-01-17 15:04:28

|

1583人浏览过

|

来源于php中文网

原创

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

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

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

效果图:

B2S商城系统
B2S商城系统

B2S商城系统B2S商城系统是由佳弗网络工作室凭借专业的技术、丰富的电子商务经验在第一时刻为最流行的分享式购物(或体验式购物)推出的开源程序。开发采用PHP+MYSQL数据库,独立编译模板、代码简洁、自由修改、安全高效、数据缓存等技术的应用,使其能在大浏览量的环境下快速稳定运行,切实节约网站成本,提升形象。注意:如果安装后页面打开出现找不到数据库等错误,请删除admin下的runtime文件夹和a

下载

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

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

更多Android编写文件浏览器简单实现相关文章请关注PHP中文网!

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

57

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

57

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

237

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

393

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

17

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

103

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

73

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

81

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

70

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
前端工程化(ES6模块化和webpack打包)
前端工程化(ES6模块化和webpack打包)

共24课时 | 5.1万人学习

极客学院Python视频教程
极客学院Python视频教程

共67课时 | 23万人学习

HTML 中文开发手册
HTML 中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号