您可以在Android中打开多个文件吗?

时间:2014-09-08 08:37:29

标签: java android android-studio

我试图在Android Studio中编写一个应用程序来打开多个音乐文件并存储其路径。目前我所做的一切都是一次加载一个文件而没有问题。例如 - 下面的代码显示了加载按钮和相关代码的onclicklister。本例中已经简化了一些代码。用户单击应用程序中的加载按钮,然后使用他们安装的任何文件管理器来选择一个文件,然后将Uri传递回我的应用程序。一切都很好。但是,是否可以选择多个文件并将它们作为文件数组传回我的应用程序?因此,用户可以选择5或6而不是选择单个音频文件。

如果是这样,你怎么做?非常感谢。

无论如何 - 我

final View.OnClickListener mGlobal_OnClickListener = new View.OnClickListener() {
    public void onClick(final View v) {

        int resID2 = v.getId();

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("audio/*");
        try {
            startActivityForResult(intent,resID2); }
        catch (Exception e) {
            Toast.makeText(getApplicationContext(), "Please install a file manager",Toast.LENGTH_LONG).show();
        }
    }
};


public void onActivityResult(int requestCode, int resultCode, Intent result) {

    if (resultCode == RESULT_OK)
    {
        Uri data = result.getData();
        String thePath = data.getPath();
        // Do something with the file path
    }
}

1 个答案:

答案 0 :(得分:5)

为了创建一个选择器来选择多个文件,你必须为你的意图增加一个额外的值。

Intent chooseFile = new Intent(Intent.ACTION_GET_CONTENT);  
chooseFile.setType("audio/*");  
chooseFile.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(Intent.createChooser(chooseFile, "Choose a file") , 2);

注意:以上方法仅适用于API级别18及以上版本。支持API级别< 18在你的应用中,使用像Android Multiple File Selector Dialog这样的图书馆项目。