Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > activityForResult Intent


Автор: Burka 7.10.2014, 13:08
Привет, у меня такой вопрос:

Код

   Intent intent = e.getIntent();
   intent.putExtra("somedata", _someData);
  _main.startActivityForResult(intent, REQUEST_CODE_RESOLUTION);


Могу ли я в onActivityResult извлеч из Intent "somedata"? Такой код у меня возвращает 0. Если так нельзя, то есть ли какой-нибудь другой способ?
Код

         int d= data.getIntExtra("somedata", 0);

Автор: Felan 7.10.2014, 17:03
Это интент на открытие активити. 
Что бы onActivityResult получить данные из интрента, перед закрытием активити надо вызывать метод setResult и передать ему заполненный интент. В принципе можно и этот запмнить и передать.

Но вообще, это не очень хороший способ взаимодействия внутри приложения. Лучше рассмотреть выделенные классы для хранения данных.

Автор: Burka 8.10.2014, 12:07
Felan, А можно поподробнее про выделенные классы? Активити вызывается не мое, поэтому я не могу вызывать setResult, но надо как то передавать данные что бы была возможность многократного вызова.

Автор: Felan 8.10.2014, 17:53
Да я не знаю, что тут подробнее. Просто делаешь класс контейнер, который будет хранить твои данные и не будет иметь отношение к UI.

Хочешь объект делаешь, хочешь статический класс. У которого поля будут нужных тебе значений. Активити пишет туда данные, перед запуском другой активити, потом забирает.

Вот если активити не твоя... Сходу ниче не скажу. Поищи, какие-нибудь коды, которые возвращаются или без изменений, или может эта активити все-таки что-то возвращает. Елси не нарямую получится, то может получится найти какой-ниудь id к которому можно удет привязать "словарь", что бы при возврате по этому id получить ранее сохраненное.

Автор: Dapo 11.10.2014, 05:57
я чего-то недопонял? Зачем передавать в чужое активити свои данные чтобы потом получить их же в своем активити? Если чужое активити что-то отдает на свой резалт, то оно свою посылку создает не так-ли? Если данные нужно хранить для последующего использования, можно обойтись простым синглтоном

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)