2011-01-04 3 views
9

Мне нужна помощь в отправке данных назад в Activity, который уже запущен.Отправить данные назад к предыдущему действию

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

Аналогично изменению настроек в телефоне, но более доступным для строки. Если вам нужна дополнительная информация, просто спросите.

ответ

7

Есть два способа сделать это, во-первых, а не вызывать startActivity(), вызов startActivityForResult(), это то, что документация должна сказать об этом:

Иногда вы хотите получить результат возвращается из действия, когда оно заканчивается. Например, вы можете начать действие, которое позволяет пользователю выбрать человека в списке контактов; Когда он заканчивается, он возвращает человека, который был выбран. Для этого вы вызываете версию startActivityForResult (Intent, int) со вторым целочисленным параметром, идентифицирующим вызов. Результат вернется через ваш метод onActivityResult (int, int, Intent).

http://developer.android.com/reference/android/app/Activity.html

Другой способ сделать это, чтобы отправить в эфир в конце вашей деятельности, и зарегистрировать BroadcastReceiver() в исходной активности.

1

Если начать вторую деятельность с использованием startActivityForResult(), а не startActivity, а затем, когда вторая активность завершает вы можете установить resultCode и Intent. Затем он вызывает метод:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
} 

в своем первом Activity, где вы можете прочитать resultCode и Intent данные