Java字符串[]返回

Java字符串[]返回,java,android,arrays,string,Java,Android,Arrays,String,我遇到了返回整个字符串[]的问题。: ArrayList<File> Files = (ArrayList<File>) data.getSerializableExtra(FILES_TO_UPLOAD); //file array list String [] files_paths = new String[5]; //string array int i = 0; for(File file : Files){ //String fileName = file

我遇到了返回整个
字符串[]的问题。

ArrayList<File> Files = (ArrayList<File>) data.getSerializableExtra(FILES_TO_UPLOAD); //file array list
String [] files_paths = new String[5]; //string array
int i = 0;
for(File file : Files){
  //String fileName = file.getName();
  String uri = file.getAbsolutePath();
  files_paths[i] = uri.toString(); //storing the selected file's paths to string array files_paths
  i++;
}
return BitmapFactory.decodeFile(files_paths[0]);
更新:

方法签名从
Bitmap
->
Bitmap[]
(位图数组)更改

可以声明为返回位图数组:

public Bitmap[] getImages(){...}
现在,您将能够返回由多个
位图组成的
位图[]
(位图数组)中的所有位图


您得到的错误是由于方法的签名与返回类型不匹配造成的,如果我正确理解了您要完成的任务,您需要返回完整的数组。

正如您所说,您需要返回所有文件路径,您需要使用:
返回文件\u路径
不是:
返回BitmapFactory.decodeFile(文件路径[0])

返回文件\u路径[0]//或0以外的任何其他索引

您的函数还需要返回类型为
String[]

您可能还希望使用类ArrayList,因为它可以方便地对数据执行其他操作


另外,我注意到您用大写字母命名了代码中的第一个变量。这是用于声明类的约定,不应用于变量。对于变量,您必须保留第一个字母的小写。

您发布的问题与您编写的代码不一致

您说您正在返回索引0处的路径,但在代码中我看到了

return BitmapFactory.decodeFile(files_paths[0]);
这意味着您正在从索引0处的文件路径返回一个
位图

完全不同的事情

如果需要返回所有路径,则将方法的返回tyoe更改为

String[]

返回文件\u路径
而不是位图

为什么不返回
文件路径
变量,因为这正是您想要做的?我尝试了
错误:(325,41)错误:不兼容类型:字符串[]无法转换为字符串
这甚至没有尝试返回
字符串[]
,它返回的是
位图
。您如何尝试返回数组?现在返回其
私有字符串[]
并返回
文件\u路径应用程序返回时出现
失败,无法提供结果ResultInfo{who=null,request=1,result=-1,data=Intent
我粘贴了整个方法,那么
位图
,而不是
字符串
?仍然没有任何
错误:(324,16)错误:不兼容的类型:字符串[]无法转换为位图[]
错误:(349,54)错误:不兼容类型:位图[]无法转换为位图
错误:(347,54)错误:不兼容类型:位图[]无法转换为位图
不兼容类型:字符串[]无法转换为位图[]表示您正试图将此新结果保存在准备保存字符串数组的旧变量中的某个位置“Bitmap[]无法转换为Bitmap”表示您还试图保存此方法的结果,即Bitmap[]bitmapArray“Bitmap[]“无法转换为位图”表示您还试图将此方法的结果(即Bitmap[]bitmapArray)保存在Bitmap类型的变量中
public Bitmap[] getImages(){...}
return BitmapFactory.decodeFile(files_paths[0]);
String[]