Передача данных в startActivityForResult и возврат их в onActivityResult - PullRequest
3 голосов
/ 03 сентября 2011

У меня есть ListView с контекстным меню, где пользователь может сделать снимок.Я делаю снимок следующим образом:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
this.startActivityForResult(intent, PICTURE_RESULT);

и извлекаю его так:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PICTURE_RESULT) {
        long itemId = ???
        savePicture(itemId, data.getExtras());
    }
}

Как передать идентификатор элемента ListView?Я попытался intent.putExtras и intent.getLongExtra, но данные не передаются с результатом намерения.Я не могу использовать переменную экземпляра, потому что действие может быть уничтожено, если пользователь переходит в альбомную ориентацию при съемке изображения.

1 Ответ

3 голосов
/ 04 сентября 2011

Сохраните эту переменную как член класса Activity, и затем вы сможете использовать ее из любого места этого класса Activity.Если вы хотите сохранить состояние переменной, вы должны использовать обратный вызов состояния onSaveInstance.Обратитесь к документации разработчика.

...