Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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.lang.String[]找到:java.lang.String_Java_Android - Fatal编程技术网

不兼容的类型。必需:java.lang.String[]找到:java.lang.String

不兼容的类型。必需:java.lang.String[]找到:java.lang.String,java,android,Java,Android,我正在尝试编写一个应用程序,它可以从从图库中选择的图片中选择颜色。在对其中一个覆盖进行编码时,我收到了这条消息 Incompatible types. Required: java.lang.String[] Found: java.lang.String 代码如下: @Override protected void onActivity(int requestCode, int resultCode, Intent data) { if (requestCode == RESUL

我正在尝试编写一个应用程序,它可以从从图库中选择的图片中选择颜色。在对其中一个覆盖进行编码时,我收到了这条消息

Incompatible types.

Required: java.lang.String[]

Found: java.lang.String
代码如下:

@Override
protected void onActivity(int requestCode, int resultCode, Intent data) {
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null !=data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = (MediaStore.Images.Media.DATA);
        Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
    }
}
onActivity
方法中出现问题。如何修复此错误

String[] filePathColumn = (MediaStore.Images.Media.DATA);
此行试图通过在括号中放置字符串来创建数组
()
。但括号仅阐明了操作顺序;在这里他们什么也不做

要创建数组,请将其作为数组初始值设定项用大括号括起来

String[] filePathColumn = {MediaStore.Images.Media.DATA};

MediaStore.Images.Media.DATA
只是一个字符串对象,而不是字符串数组。因此,将其分配给
字符串[]
会引发错误。这就像说一页等于一本书

您可以使用两种方法解决此问题:

  • 使用大括号以内联值初始化数组:

    String[] filePathColumn = { MediaStore.Images.Media.DATA };
    
  • 或者单独做:

    String[] filePathColumn = new String[1];
    filePathColumn[0] = MediaStore.Images.Media.DATA;
    

  • 通过不将
    字符串
    分配给
    字符串[]类型的变量
    @OliverCharlesworth,你是什么意思?每次我尝试键入字符串[]时,它都会返回一个错误,然后不要这样做;)