Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中使用文件浏览器_Android - Fatal编程技术网

如何在android中使用文件浏览器

如何在android中使用文件浏览器,android,Android,我有一个应用程序上传文件到服务器使用php! 如何在我的应用程序中实现文件浏览器来选择要上载的文件? 请给我一个非常简单的例子!或者简单的解决方案 在谷歌上有这么多的解决方案,在这里你不能仅仅要求一个完整的实现,然后期望有人在这里编写。以下是几个好结果: 基本上,您将有一个列表对话框,用于搜索SD卡上的文件和目录,然后如果它是一个文件(例如,file类中有方法检查它是文件还是目录),则选择它并关闭对话框,或者如果它是一个目录,使用文件和目录列表等更改目录和刷新对话框。如果需要选择任何类型的文

我有一个应用程序上传文件到服务器使用php! 如何在我的应用程序中实现文件浏览器来选择要上载的文件?
请给我一个非常简单的例子!或者简单的解决方案

在谷歌上有这么多的解决方案,在这里你不能仅仅要求一个完整的实现,然后期望有人在这里编写。以下是几个好结果:


基本上,您将有一个列表对话框,用于搜索SD卡上的文件和目录,然后如果它是一个文件(例如,file类中有方法检查它是文件还是目录),则选择它并关闭对话框,或者如果它是一个目录,使用文件和目录列表等更改目录和刷新对话框。

如果需要选择任何类型的文件,没有简单的解决方案,则必须实现类似的文件管理器功能。以下是一些帮助您入门的提示和示例:

先决条件:你对Android的工作原理有一些基本的了解;您知道如何实现自定义的
ListView

  • 使用
    ListView
    显示文件
  • 使用
    ArrayList
从外部存储的根开始:

 File root = Environment
                .getExternalStorageDirectory();
以下方法将列出目录中的所有文件和子目录:

    public static ArrayList<File> getSubfiles(File root) {

    File[] mFiles = root.listFiles();

    ArrayList<File> files = new ArrayList<File>();
    ArrayList<File> dirs = new ArrayList<File>();
    ArrayList<File> allData = new ArrayList<File>();
    for (int i = 0; i < myFiles.length; i++) {

        if (!myFiles[i].isDirectory()) {
            files.add(myFiles[i]);
        } else {
            dirs.add(myFiles[i]);
        }

     }
    Collections.sort(files);
    Collections.sort(dirs);
    allData.addAll(dirs);
    allData.addAll(files);

    return allData;

}
publicstaticarraylistgetsubfiles(文件根目录){
File[]mFiles=root.listFiles();
ArrayList files=新的ArrayList();
ArrayList dirs=新的ArrayList();
ArrayList allData=新的ArrayList();
对于(int i=0;i
使用此方法,您可以通过向文件系统传递任何目录来“向下”移动文件系统。要向上移动,只需使用
getParentFile()
并将结果传递给此方法

因此,您应该始终将此方法的结果传递给适配器,然后调用
notifyDataSetChanged()


仅此而已,您有一个非常基本的文件查看器。当然,你需要创建一些布局并编写更多的代码,上面的提示应该可以帮助你开始,因为正如前面提到的,没有人会在这里为你编写一半的应用程序。如果您还有其他问题,请留下评论并描述您的问题。

如果您只需要选择文件路径,请尝试

首先显示文件资源管理器:

Intent intent = new Intent(CONTEXT, SimpleFileExplorerActivity);
startActivityForResult(intent, REQUEST_CODE);
然后接收结果:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if(data != null){
        String selectedAbsolutePath = data.getStringExtra(SimpleFileExplorerActivity.ON_ACTIVITY_RESULT_KEY);
        Toast.makeText(CONTEXT, selectedAbsolutePath, Toast.LENGTH_SHORT).show();    
    }
}

您可以打开SD卡中列出的文件的对话框,并观看此-->