编写一个Android下的网页浏览器,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 {

/**

* 获取当前目录下的所有文件或文件夹

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

效果图:

5811839e6ed1cbd1c26032d9e68b81e0.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值