【问题标题】:How open choose directory dialog on Android java?如何在 Android java 上打开选择目录对话框?
【发布时间】:2014-04-28 12:47:12
【问题描述】:

我的应用从 Internet 下载文件,我需要用户选择保存文件的位置。如何在 Android Java 上做出选择目录?请给出示例代码

【问题讨论】:

  • 使用谷歌。 GitHub上有不少解决方案。

标签: android


【解决方案1】:

您只需要在这样的活动中覆盖onCreateDialog

//In an Activity
private String[] mFileList;
private File mPath = new File(Environment.getExternalStorageDirectory() + "//yourdir//");
private String mChosenFile;
private static final String FTYPE = ".txt";    
private static final int DIALOG_LOAD_FILE = 1000;

private void loadFileList() {
    try {
        mPath.mkdirs();
    }
    catch(SecurityException e) {
        Log.e(TAG, "unable to write on the sd card " + e.toString());
    }
    if(mPath.exists()) {
        FilenameFilter filter = new FilenameFilter() {

            @Override
            public boolean accept(File dir, String filename) {
                File sel = new File(dir, filename);
                return filename.contains(FTYPE) || sel.isDirectory();
            }

        };
        mFileList = mPath.list(filter);
    }
    else {
        mFileList= new String[0];
    }
}

protected Dialog onCreateDialog(int id) {
    Dialog dialog = null;
    AlertDialog.Builder builder = new Builder(this);

    switch(id) {
        case DIALOG_LOAD_FILE:
            builder.setTitle("Choose your file");
            if(mFileList == null) {
                Log.e(TAG, "Showing file picker before loading the file list");
                dialog = builder.create();
                return dialog;
            }
            builder.setItems(mFileList, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    mChosenFile = mFileList[which];
                    //you can do stuff with the file here too
                }
            });
            break;
    }
    dialog = builder.show();
    return dialog;
}

【讨论】:

    【解决方案2】:

    看看这个:

    简化此过程的小型开源 Android 库项目,同时还提供内置文件资源管理器(以防用户不存在)。它使用起来非常简单,只需要几行代码。

    你可以在 GitHub 上找到它:https://github.com/iPaulPro/aFileChooser

    更多详情:

    Android file chooser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-02
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多