`

android SD卡浏览器

 
阅读更多

先看例子演示:



Demo下载


最后,以上例子都来源与安卓无忧,请去应用宝或者豌豆荚下载:http://android.myapp.com/myapp/detail.htm?apkName=com.shandong.mm.androidstudy,源码例子文档一网打尽。

java代码

package mm.shandong.com.testsdbrowser;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class TestSDBrowserActivity extends AppCompatActivity {
    ListView listView;
    SimpleAdapter simpleAdapter;
    List<Map<String, Object>> listMaps;
    File currentParentFile;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_sdbrowser);
        listView = (ListView) findViewById(R.id.listView);
        listMaps = new ArrayList<Map<String, Object>>();
        currentParentFile = null;
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            File rootFile = Environment.getExternalStorageDirectory();
            List<File> files = new ArrayList<File>();
            Collections.addAll(files, rootFile.listFiles());
            refreshListViewData(files);
        }
        //为listView创建simpleAdapter
        simpleAdapter = new SimpleAdapter(this, listMaps, R.layout.item_sd_listview,
                new String[]{"icon", "fileName"},
                new int[]{R.id.imageView, R.id.textView});
        listView.setAdapter(simpleAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                Map map = (Map) adapterView.getItemAtPosition(position);

                File file = (File) map.get("file");
                if (file.isFile()) {
                    Toast.makeText(TestSDBrowserActivity.this,
                            "您点击的是文件,没有子文件",
                            Toast.LENGTH_SHORT).show();
                } else {
                    currentParentFile = file;
                    List<File> files = new ArrayList<File>();
                    Collections.addAll(files, file.listFiles());
                    refreshListViewData(files);
                    simpleAdapter.notifyDataSetChanged();
                }
            }
        });
    }
///刷新listview中的数据
    public void refreshListViewData(List<File> files) {
        Iterator<File> iterator = files.iterator();
        listMaps.clear();
        while (iterator.hasNext()) {
            File file = iterator.next();
            Map<String, Object> map = new HashMap<String, Object>();
            if (file.isFile()) {
                map.put("icon", R.drawable.file32);
            } else {
                map.put("icon", R.drawable.folder32);
            }
            map.put("fileName", file.getName());
            map.put("file", file);
            listMaps.add(map);
        }

    }
///返回到上一级目录
    public void backToParentDir(View view) {
        if (currentParentFile != null) {
            File parentParentFile = currentParentFile.getParentFile();
            List<File> files = new ArrayList<File>();
            Collections.addAll(files, parentParentFile.listFiles());
            refreshListViewData(files);
            simpleAdapter.notifyDataSetChanged();
            try {
                if (parentParentFile.getCanonicalPath().equals(Environment.
                        getExternalStorageDirectory().getCanonicalPath())) {
                    currentParentFile = null;
                } else {
                    currentParentFile = parentParentFile;

                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        } else {
            Toast.makeText(TestSDBrowserActivity.this,
                    "已是SD卡根目录", Toast.LENGTH_SHORT).show();
        }
    }

}



分享到:
评论

相关推荐

    Android SD卡浏览器

    Android SD卡浏览器是一款专为Android系统设计的应用程序,它允许用户直观地浏览和管理存储在SD卡上的各种文件和文件夹。其主要功能包括文件查看、选择、复制、移动、删除以及创建新文件夹等。此外,该浏览器还支持...

    android SD卡文件浏览器

    在Android平台上,SD卡文件浏览器是一款实用的应用程序,它允许用户查看和管理存储在设备SD卡上的文件和文件夹。这个应用通常具有直观的界面,采用列表视图展示SD卡内容,便于用户浏览、选择、复制、移动或删除文件...

    Android 简单sd卡浏览器

    Android 简单sd卡浏览器,比较完整的文件浏览器

    Android手机SD卡文件浏览器

    《Android手机SD卡文件浏览器深度解析》 在智能手机领域,Android系统因其开源特性和丰富的定制性,深受广大用户的喜爱。而作为用户与设备之间交互的重要一环,文件管理显得尤为重要。"Android手机SD卡文件浏览器...

    Android简易sd卡文件浏览器

    在Android平台上,开发一个简易的SD卡文件浏览器是一项常见的任务,尤其对于那些需要集成文件选择功能的应用来说。这个"Android简易sd卡文件浏览器"就是一个这样的工具,它允许用户浏览SD卡上的文件,并选择特定文件...

    android实现SDcard浏览器

    SD卡(Secure Digital Card)在Android设备上通常作为外部存储空间使用,用于存放用户数据、应用缓存等。Android为应用程序提供了访问外部存储的API,主要通过`Environment`类的静态方法来获取SD卡路径。例如,`...

    sd卡文件浏览器

    "sd卡文件浏览器"是一个应用程序,它允许用户在Android设备的SD卡上浏览、管理和操作文件。源代码的提供意味着我们可以深入理解其内部工作原理,这对于开发者来说是极有价值的资源,特别是对于那些想要学习如何创建...

    本示例实现SD卡文件浏览器

    在Android系统中,SD卡(Secure Digital Card)是设备扩展存储的重要部分,用户通常需要访问和管理SD卡上的文件。本示例旨在帮助开发者实现一个功能完备的SD卡文件浏览器,使得用户能够方便地浏览、选择和操作SD卡上...

    知识共享-Android之sd卡浏览器源码(雷惊风)

    本实例源码“知识共享-Android之sd卡浏览器源码(雷惊风)”提供了一个简单的SD卡文件浏览器的实现,对于初学者或者需要此功能的开发者来说,是一个很好的学习和参考资源。 首先,我们需要理解Android对存储访问的...

    android图片浏览器代码

    - **磁盘缓存**:对于不再内存中的图片,代码可能使用了文件系统或SQLite数据库来实现磁盘缓存,以防止频繁地读取网络或存储卡。 3. **图片加载库**: - 虽然题目没有明确指出使用了哪个图片加载库,但考虑到大...

    GetSDTree(简单SD卡文件浏览器)源代码

    《GetSDTree:深入探索Android SD卡文件浏览器的源代码》 GetSDTree,这个名称代表着一个简洁且实用的Android应用程序,它是一个专门用于浏览SD卡文件的工具。通过源代码,我们可以一窥Android系统中文件管理器的...

    android 图片音乐浏览器

    【Android 图片音乐浏览器】是一款专门为Android平台设计的应用程序,旨在提供一个集成的环境,让用户能够轻松浏览和播放存储在SD卡上的图片和音乐。这款应用的独特之处在于它允许用户根据特定的文件夹结构来组织...

    android sd卡文件浏览

    在Android平台上,对SD卡文件进行浏览是一项常见的需求,尤其对于开发者来说,这涉及到文件系统的交互和用户界面的实现。Android系统提供了丰富的API接口来访问和操作文件,包括SD卡上的文件。以下将详细讲解如何...

    Android应用小实例--SD卡文件浏览器

    在Android平台上,开发一个SD卡文件浏览器是一个常见的实践任务,这可以帮助用户查看并管理设备上的文件。本实例将深入探讨如何构建这样一个应用,主要涉及以下几个关键知识点: 1. **权限管理**:首先,由于...

    Android SD卡文件浏览器

    文件浏览器,实现的基本步骤如下: (1)显示当前目录中所有的子目录和文件,并将目录和文件名显示在ListView中。 (2)当单击某一个列表项时,如果当前列表项是目录,则进入该目录,并重复第一步。如果当前列表项是...

    基于Android Studio开发手机本地文件浏览器

    在Android 4.0(API级别14)到6.0(API级别23)之间,应用默认拥有读写外部存储(即SD卡)的权限。但自Android 6.0开始,Google引入了运行时权限管理,这意味着开发者需要在运行时请求用户的存储访问权限,而不仅仅...

    SD卡文件浏览器

    标题“SD卡文件浏览器”指的是一个应用程序,它允许用户在Android设备或任何使用SD卡作为扩展存储的设备上浏览和管理文件与文件夹。这样的工具通常具有用户友好的界面,支持基本的文件操作,如查看、复制、移动、...

    android 文件 浏览器 源码

    2. **外部存储(SD卡)**:公共存储区域,所有应用都可以读写,但需遵循权限规则。在Android 6.0及以上版本,用户授权后才能访问。 3. **外部存储的私有目录**:每个应用在外部存储有自己的私有目录,其他应用无法...

Global site tag (gtag.js) - Google Analytics