首先在eclipse里面建立Android工程
。
1.启动Eclipse
2.右击“package explorer”并点击 “ New->Android Project ”
3.在新建工程的对话框中填写以下信息
- 工程名: FSExplorer1
- 包名: org.lombardos.android.FSExplorer1
- Activity Name: FileList
- Application Name: Filesystem Explorer
4.点击“ Finish”完成新建工程的对话框。
显示根文件系统
下一步是去修改FileList文件使根目录下的文件和目录可以显示出来。这一步类似我们在记事本中显示内容,不同之处就在于这里不是从SQL数据库数据库中显示数据而是直接获取的Android系统文件。
- 增加一个字符变量”no_files”到”res/values/strings.xml”文件中。这个变量的值是”This directory is empty”,当没有文件或者子目录在当前目录下这个值就会显示出来。
- 创建一个新的布局文件命名为directory_list.xml。此文件的内容如下。注意他的格式必须符合google官方给出的规范(参考 first exercise
的第四步)。<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”> <ListView id=”@id/android:list”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”/>
<TextView id=”@id/android:empty”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/no_files”/>
</LinearLayout>
- 创建另外一个布局文件file_row.xml。文件的内容如下。文件的格式规范参考( first exercise
第五步)。
<?xml version=”1.0″ encoding=”utf-8″?>
<TextView id=”@+id/text1″
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”/>
这个布局文件用来显示目录下的每一个子目录和文件的列表。
- 修改函数文件FileList.java 中的onCreate() 如下:
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.directory_list);
fill(new File(”/”).listFiles());
}
我们修改setContentView()的第一个参数为“R.layout.directory_list”,以便类似”Mp3s”这样的列表界面显示而取代原来”main”参数的主界面的显示。另外我们需要增加一个方法fill(),这个方法在后面介绍。
- 改变类FileList的扩展基类,由原来的”Activity”改为”ListActivity”,如下:
public class FileList extends ListActivity {
- 为类”FileList”创建一个私有变量用来显示当前目录下的列表条目。
private List<String> items = null;
- 内部方法fill()的参数是File[]数组,用于在屏幕的列表中显示每个文件和目录的名字。
1 private void fill(File[] files) {
2 items = new ArrayList<String>();
3 for( File file : files )
4 items.add(file.getPath());
5 ArrayAdapter<String> fileList = new ArrayAdapter<String>(this, R.layout.file_row, items);
6 setListAdapter(fileList);
7 }
1.行2-4行获取files[]数组并将每一个文件名赋予ArrayList<String>,items是一个类在后面将会用到,当用户点击每一个文件或者目录的时候。
2.第五行就是使用布局文件file_row layout将ArrayList中的数据输出到ArrayAdapter。
3. 最后第六步,将目前ArrayAdapter中的内容显示到屏幕上。
- 对于使用的一些imports类在eclipse下快捷键”Shift-Control-O”来组织。
- 保存你的文件并运行。这样就可以在Android电话中得到你的手机系统文件目录了。
- 当再点击却没有发生任何反应,下面的部分将解决这个问题。
导航目录树
现在我们可以看到了根目录root中的目录结构,那么是否可以显示每个子目录中的结构。
- 首先是我们需要一个返回的导航到目录树的根部即root,否则我们会发现进入目录后无法返回。最快的解决
方案就是在每个目录下都安排一个返回根目录的导航。实施起来第一步就是增加一个string变量在strings.xml文件中,他的name必须是
”to_top”,而值可以是”[Back to Top]“。
- 下一步就是需要增加这个”to_top”到fill()函数的item列表中。在代码 “items = new ArrayList<String>(); “行后面增加items.add(getString(R.string.to_top));
注意:类当中的静态变量的调用采用getString(R.string.<name>) 方法是比较合适的。将这些静态变量移到资源目录下可以规范你的代码。
- 当用户点击列表条目时候,我们就有机会截取点击并且做点有趣的事情了。为了达到这个目的,我们需要覆写ListActivity类的onListItemClick()方法。如下:
1 @Override
2 protected void onListItemClick(ListView l, View v, int position, long id) {
3 int selectionRowID = (int)getSelectionRowID();
4 if (selectionRowID==0){
5 fillWithRoot();
6 } else {
7 File file = new File(items.get(selectionRowID));
8 if (file.isDirectory())
9 fill(file.listFiles());
10 else
11 AlertDialog.show(this, “Not a Directory”, “That’s a file, not a directory”, “Cancel”, false);
12 }
13 }
Notes:
- 第三行显示用户点击的列表行号。
- 第五行,如果用户选择的RowID为0,则返回到根目录列表。
- 第九行,表示进入到用户选择的目录列表。
- 第十一行,显示一些错误信息。
- 现在我们需要创建 fillWithRoot() 方法。作用类似onCreate()方法的最后一行:
private void fillWithRoot() {
fill(new File(”/”).listFiles());
}
- 不要忘记使用fillWithRoot()方法替换onCteate()方法中的fill()方法
这个项目完整的源代码可以从这里下载获得, 下载
(32K Zip archive)
分享到:
相关推荐
基于Android的文件浏览器开发与实现是一项具有前瞻性的技术项目。选择这一主题作为毕业设计,旨在为未来的工作提供更多的机会。Java技术近年来发展迅速,新的应用技术层出不穷,基于Java的Android软件开发具有广阔的...
基于android的文件浏览器开发与实现 (2).pdf基于android的文件浏览器开发与实现 (2).pdf基于android的文件浏览器开发与实现 (2).pdf基于android的文件浏览器开发与实现 (2).pdf基于android的文件浏览器开发与实现 (2...
《Android 文件浏览器开发详解》 在移动设备领域,Android操作系统以其开源、自由度高而备受开发者喜爱。在Android应用开发中,文件浏览器是常见的组件之一,它允许用户浏览、选择和管理设备上的文件。本篇将详细...
总的来说,Android文件系统浏览器是Android应用开发中的一个重要工具,它通过提供直观的界面和便捷的操作,帮助用户更好地管理和利用设备的存储空间。开发者在实现这一功能时,需要关注权限控制、文件操作以及用户...
在Android开发中,构建一个强大的文件管理器是一项挑战,而"android 仿ES文件浏览器源码"则提供了一个实现此类功能的参考实例。ES文件浏览器是一款广受欢迎的Android应用,它具有丰富的文件管理、查看、编辑和共享...
android 文件 浏览器 源码 在Android平台上,构建一个文件浏览器应用是许多开发者都需要掌握的一项技能。这个源码项目名为android 文件 浏览器 源码,提供了一个简洁的实现,旨在帮助初、中级开发者理解文件浏览功能...
通过学习和理解这个源码,开发者不仅可以掌握Android文件系统的操作,还能了解如何组织代码以实现功能丰富的文件浏览器。对于初学者来说,这是一个很好的实践项目,能够提升他们的Android开发技能;对于有一定经验的...
这个“个人写的Android文件浏览器源码”提供了一种实现方式,可以帮助开发者理解和学习如何在Android环境中构建这样的应用。 首先,Android文件浏览器的核心功能包括: 1. **目录遍历**:程序需要能够列出设备的根...
本文将深入探讨如何实现一个基于ListView的Android文件浏览器。首先,我们从标题和描述出发,理解我们的目标是创建一个使用ListView组件来展示文件和目录的应用。 ### 1. Android 文件操作权限 在Android中,任何...
这个源代码示例是一个基本的Android文件浏览器,用于浏览和操作本地存储的文件。以下将详细解释代码中的关键组件和功能。 首先,我们看到`MainActivity`继承了`Activity`类,并实现了`OnClickListener`, `...
本文将深入解析“Android文件浏览器源码”,并以此为基础,讲解相关的Android开发知识。 首先,我们要明白Android文件浏览器的基本功能:列出指定目录下的文件和子目录,支持用户选择、查看、复制、移动和删除文件...
在这个项目中,我们使用Android Studio来开发一个手机本地文件浏览器,它允许用户浏览并操作设备上的文件和目录。 在Android中,访问文件系统需要遵循特定的权限模型。在Android 4.0(API级别14)到6.0(API级别23...
一、Android文件系统 Android系统采用Linux内核,因此其文件系统与传统的Linux文件系统类似,主要由以下几个部分组成: 1. /system:包含系统核心文件,如库、框架和预装应用。 2. /data:存储应用程序数据,如...
在日常使用中,文件管理是一个不可或缺的功能,因此,Android文件浏览器扮演着重要的角色。本文将深入探讨“Android 文件浏览器”的核心概念、实现原理以及如何利用源代码进行二次开发。 一、文件浏览器的基本功能 ...
这个"Android文件浏览器的开发 Android学习日志"压缩包很可能是包含一系列教程、源代码示例或笔记,用于帮助开发者掌握如何创建这样一个实用的应用程序。在Android应用开发中,文件浏览器通常涉及到以下几个关键知识...
本文将深入探讨如何创建一个Android文件浏览器,并介绍相关的技术点。 首先,Android文件浏览器的核心功能包括目录遍历、文件显示、文件选择以及基本的文件操作(如复制、移动、删除等)。为了实现这些功能,开发者...