介绍:
每一次你需要在Android应用程序中选择一个SD卡目录,你都得加载一种目录选择器对话框,由它呈现图形界面以便你选择需要的目录。
不幸的是,正如开发人员所预料的,Android不提供任何内置的目录选择器对话框。因此开发人员必须自己写。本文将讲述以增强创建对话框的能力,为Android SD卡实现简单的目录选择器对话框。该流程包含在一个单独的文件中并且不用任何额外资源,除了预定义的Android资源。

执行代码
目录选择器对话框是基于AlertDialog,由子目录的ListView所供给。当前目录路径是显示在AlertDialog标题上。通过点击子目录ListView中的项目完成导航向前到一个目录,然后通过按住“返回”键返回。清单中的子目录是按名称分类的。当通过按住OK键选中需要的目录,一个“注册回调”被唤起,它由已选择目录的完整路径所供给。
代码包含在一个单独的文件DirectoryChooserDialog.java中。它以当前目录的子目录的ListView 加载AlertDialog 并保持追踪导航目录。
执行DirectoryChooserDialog 类定义如下回调界面。
// Callback interface for selected directory
public interface ChosenDirectoryListener
{ public void onChosenDir(String chosenDir);
}
一个回调可以被注册于DirectoryChooserDialog类构造函数中。
public DirectoryChooserDialog(Context context, ChosenDirectoryListener chosenDirectoryListener);
通过默认创建能力,新目录能够被运用(通过点击“新文件夹”按钮),它可以通过setNewFolderEnabled的方式关闭,当禁用新文件夹按钮隐藏时。
///////////////////////////////////////////////////////////////////////
// setNewFolderEnabled() - enable/disable new folder button
///////////////////////////////////////////////////////////////////////
public void setNewFolderEnabled(boolean isNewFolderEnabled)
{
m_isNewFolderEnabled = isNewFolderEnabled;
}
public boolean getNewFolderEnabled()
{
return m_isNewFolderEnabled;
}
DirectoryChooserDialog指定两个公共chooseDirectory 方式来加载目录选择器对话框。一个带有初始目录参数;另一个没有。默认初始目录是SD卡的根目录。
//////////////////////////////////////////////////////////////////////
// chooseDirectory() - load directory chooser dialog for initial
// default sdcard root directory
//////////////////////////////////////////////////////////////////////
public void chooseDirectory();
////////////////////////////////////////////////////////////////////////////////
// chooseDirectory(String dir) - load directory chooser dialog for initial
// input 'dir' directory
////////////////////////////////////////////////////////////////////////////////
public void chooseDirectory(String dir);
DirectoryChooserDialog 类全面执行

本文介绍如何在Android应用中实现一个自定义的目录选择器对话框,由于Android本身没有内置的目录选择器,开发者需要自行编写。这个增强版的对话框基于AlertDialog,使用ListView展示子目录,并允许通过点击导航和按住返回键回退。目录按名称排序,选中目录后触发回调,提供完整路径。DirectoryChooserDialog类包含了新目录创建功能,可以选择开启或关闭。示例代码展示了如何在按钮点击事件中使用此对话框,并保存上次选择的目录作为下次的初始目录。
最低0.47元/天 解锁文章
4422

被折叠的 条评论
为什么被折叠?



