Передача дополнительных данных в startActivityForResult получает значение null в onActivityResult из другого класса - PullRequest
0 голосов
/ 19 января 2020

Я новичок в 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. Я что-то пропустил? Есть ли другой рекомендуемый способ сделать это? Заранее спасибо!

...