不兼容的类型。必需: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,你是什么意思?每次我尝试键入字符串[]时,它都会返回一个错误,然后不要这样做;)