Android文件管理器

本文介绍了在Android中创建文件管理器时遇到的两个关键问题:如何点击列表项进入子菜单及如何返回上一级目录。通过自定义MyAdapter和管理目录路径的ArrayList来实现功能。同时还提到了源码中涉及的文件操作类、自定义adapter和缩略图类。
摘要由CSDN通过智能技术生成

文件管理器时所遇到的问题
1.如何点击列表项进入相应的子菜单
答:自定义MyAdapter继承自BaseAdapter,获取目录下的所有文件存入ArrayList中,然后依次为布局中的textView赋值,这样点击列表项的时候获取的是文件,通过该文件的绝对路径,获取该文件下的所有子文件。
2.如何返回上一级目录
答:每次单击列表项的时候把该目录的绝对路径添加的一个一个ArrayList中,点击返回的时候再把列表中最后一个文件去除后的最后一个路径取出来,就是上一级目录了
源码

import android.app.AlertDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;

/**
 * 文件管理器主要功能实现
 * 1.列出系统目录下所有文件及文件夹
 * 2.点击文件夹 可以进入下一级目录
 * 3.点击返回可以进入上一级目录
 * 4.为文件或文件夹添加相应的图标,列出文件夹下的文件和文件夹的数量,文件最后被修改的时间
 * 5.点击文件的时候为文件选择相应的方式打开
 */
public class MainActivity extends AppCompatActivity {
   

    private ListView lv;
    private Button btnBack,btnGo;
    private MyAdapter myAdapter;
    private FileUtil fileUtil;
    private ArrayList<String> pathList;
    private String upPath;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();//初始化用户界面
    }

    private void init() {
        fileUtil=new FileUtil();
        pathList=new ArrayList<String>();
        upPath=Environment.getExternalStorageDirectory().getAbsolutePath();
        pathList.add(upPath);
        fileUtil.getFiles(upPath);
        lv= (ListView) findViewById(R.id.lv);
        btnBack= (Button) findViewById(R.id.btn_back);
        btnGo= (Button) findViewById(R.id.btn_go);
        btnBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值