Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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
Java 有人能帮我理解调用意图来选择文件吗?_Java_Android_Android Intent_Filechooser - Fatal编程技术网

Java 有人能帮我理解调用意图来选择文件吗?

Java 有人能帮我理解调用意图来选择文件吗?,java,android,android-intent,filechooser,Java,Android,Android Intent,Filechooser,我有这个代码,我有半工作。我希望它调出一个文件选择器,然后将选择的文件返回到可操作的格式。可能是文件或字符串 我阅读了关于如何调用这个的Android文档,但我仍然不理解其意图以及如何使用它们 我习惯于调用一个函数,然后将返回设置为一个变量,并从那里开始工作 我不知道如何设置它来完成它。我知道有些用户可能没有文件浏览器,但我的所有用户都会 那么我如何让这个代码发挥作用呢?当它返回时,它现在什么也不做 chooseFileButton.setOnClickListener(new View.OnC

我有这个代码,我有半工作。我希望它调出一个文件选择器,然后将选择的文件返回到可操作的格式。可能是
文件
字符串

我阅读了关于如何调用这个的Android文档,但我仍然不理解其意图以及如何使用它们

我习惯于调用一个函数,然后将返回设置为一个变量,并从那里开始工作

我不知道如何设置它来完成它。我知道有些用户可能没有文件浏览器,但我的所有用户都会

那么我如何让这个代码发挥作用呢?当它返回时,它现在什么也不做

chooseFileButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText enterZipEditText = (EditText) findViewById(R.id.enterZipEditText);
            Intent intent = new Intent();  
            intent.setType("zip/*");  
            intent.setAction(Intent.ACTION_GET_CONTENT);  
            startActivityForResult(Intent.createChooser(intent, "Choose File"), REQUEST_CODE);
        }
    });

您可以尝试以下方法:

@Override
public void onClick(View v) {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.setType("zip/*"); 
    intent.addCategory(Intent.CATEGORY_OPENABLE);

    try {
        startActivityForResult(
                Intent.createChooser(intent, "Select a File to Upload"),
                FILE_SELECT_CODE);
     } catch (android.content.ActivityNotFoundException ex) {
        //Handle error.
     }
    }
});

看看这是否有效。您可以找到有关我发现的问题的更多信息。

如果您希望处理返回的文件名,您可能需要添加回调:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == Activity.RESULT_OK) {
            // Do Stuff
            String file = data.getData().getPath();
        }
    }
}

好啊我看到他在做事。但假设我想将结果设置为一个变量。这样我就没有这个意图了。从这段代码中,您能指出我对结果的访问权限在哪里吗?请尝试以下操作:String file=data.getData();或字符串文件=data.getData().getPath();现在,我看到人们在访问uri和数据等变量时没有声明它。所以我假设他们是活动课的延伸还是什么?有没有办法从我的主java文件中调用它?啊!我找到了我问题的答案。它位于