Я новичок в Android разработке и работаю над личным проектом, который использует Google Map и загрузку изображений. Я не могу понять, почему при использовании startActivityForResult
в сочетании с onActivityResult
из 2 разных классов одного и того же пакета он не анализирует дополнительные данные, вставленные с putExtra
Код:
package com.example.gui;
class InitialMapLoad {
...
lGMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
final LatLng mClickPos = latLng;
ImageView image = new ImageView(lActivity);
image.setImageResource(R.drawable.pin_on_map);
AlertDialog.Builder imgSelectPopup = new AlertDialog.Builder(lActivity);
imgSelectPopup.setTitle(R.string.addImageCoords);
imgSelectPopup.setNegativeButton(R.string.cancelAction, null);
imgSelectPopup.setPositiveButton(R.string.btnOpenGallery, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent pickPhoto = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
pickPhoto.putExtra("gpsLng", String.valueOf(mClickPos.longitude));
lActivity.startActivityForResult(pickPhoto , LOAD_IMG_REQUEST);
}
});
}
и основной класс деятельности
package com.example.gui;
public class gui extends AppCompatActivity {
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
if (requestCode == LOAD_IMG_REQUEST) {
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
Log.e(TAG, "onActivityResult: " + selectedImage ); // this is OK
Log.e(TAG, "onActivityResult: " + imageReturnedIntent.getStringExtra("gpsLng") ); // this is null
}
}
}
}
Как отмечается в комментариях, getStringExtra("gpsLng")
- это null
. Я что-то пропустил? Есть ли другой рекомендуемый способ сделать это? Заранее спасибо!