Android 如何在与“拍摄”合影后设置ActivityResulton kotlin;以下声明具有相同的JVM签名;错误?
我试图在从本地文件中拍摄或附加照片后,在kotlin类上设置onActivityResult。java代码运行良好Android 如何在与“拍摄”合影后设置ActivityResulton kotlin;以下声明具有相同的JVM签名;错误?,android,kotlin,onactivityresult,Android,Kotlin,Onactivityresult,我试图在从本地文件中拍摄或附加照片后,在kotlin类上设置onActivityResult。java代码运行良好 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) { if (resultCode == Activity.RESUL
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) {
if (resultCode == Activity.RESULT_OK) {
photoList.add(mPhotoFile.toString());
}
}else{
if (resultCode == Activity.RESULT_OK) {
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]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
photoList.add(picturePath);
}
}
}
但是在kotlin类上,相同的代码块给了我一个错误“以下声明具有相同的JVM签名”
这是kotlin代码
private fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) {
if (resultCode == Activity.RESULT_OK) {
photoList.add(mPhotoFile.toString())
}
} else {
if (resultCode == Activity.RESULT_OK) {
val selectedImage = data.data
val filePathColumn = arrayOf(MediaStore.Images.Media.DATA)
val cursor = contentResolver.query(selectedImage, filePathColumn, null, null, null)
cursor.moveToFirst()
val columnIndex = cursor.getColumnIndex(filePathColumn[0])
val picturePath = cursor.getString(columnIndex)
cursor.close()
photoList.add(picturePath)
}
}
}
错误是
任何帮助或建议都将非常感谢您应该像这样更改代码
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) {
if (resultCode == Activity.RESULT_OK) {
photoList.add(mPhotoFile.toString())
}
} else {
if (resultCode == Activity.RESULT_OK) {
val selectedImage = data.data
val filePathColumn = arrayOf(MediaStore.Images.Media.DATA)
val cursor = contentResolver.query(selectedImage, filePathColumn, null, null, null)
cursor.moveToFirst()
val columnIndex = cursor.getColumnIndex(filePathColumn[0])
val picturePath = cursor.getString(columnIndex)
cursor.close()
photoList.add(picturePath)
}
}
}
在fragment-onActivityResult方法中,数据参数可为null,因此必须使用data:Intent?
:
private fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
// your code here
}
谢谢你的回复。这样做了,只需对intent“data:intent?”进行空检查。