Intereting Posts
Как я могу изменить продолжительность анимации для Android AnimationDrawable «на лету»? Android – создать службу, которая работает один раз в день Как разрешить ошибку «Ресурс не найден, который соответствует указанному имени» при добавлении библиотеки v7 AppCompat в Eclipse? Остановить службу Android, когда приложение закрыто с помощью диспетчера задач Принудительный выход звука на внутренний динамик, когда наушники подключены Android всеобъемлющей отказоустойчивой музыкальной службы на нескольких мероприятиях Использование HTML в Android Alert Dialog Android Google Analytics и размеры Android: requestCode и resultCode Пикассо загружает ресурсы с их URI Как я могу автоматически протестировать функциональность приложений iOS и Android? Как удалить простыню вокруг кнопок в Android? Org.apache.http.entity.FileEntity устарел в Android 6 (Marshmallow) Как получить NEW width / height корневого макета в onConfigurationChanged? Отключить пул соединений

Как запуститьActivityForResult из адаптера, чтобы вернуть результат в фрагмент

У меня есть несколько фрагментов с пользовательскими списками ListView. Они используют мой собственный ListAdapter, в котором я обрабатываю клики по элементам списка. Мне нужно запустить еще одно действие из этого OnClickListener и вернуть некоторую информацию в Fragment. Я пытаюсь использовать

Intent intent=new Intent(context, DataFillerActivity.class); ((Activity) context).startActivityForResult(intent, 3); 

Но DataFillerActivity возвращает результат MainActivity, а не Fragment. Так что лучший способ решить эту проблему? благодаря

Solutions Collecting From Web of "Как запуститьActivityForResult из адаптера, чтобы вернуть результат в фрагмент"

Чтобы обновить свой фрагмент, единственный способ должен быть над этим. Это потому, что фрагмент разработан как модульный.

http://developer.android.com/training/basics/fragments/communicating.html

Если вы запустите Acitivity для результата, результат будет передан в Activity, который запустил запрос. Теперь вы можете передать данные в желаемый фрагмент.

Как пишет Стив, фрагмент должен быть модульным. Однако это означает, что сообщение не должно проходить какую-либо деятельность, а оставаться внутри фрагмента.

Чтобы решить эту проблему, убедитесь, что ваш ListAdapter содержит ссылку на фрагмент и использует ListAdapter fragment.startActivityForResult() . Затем результат вернется к фрагменту onActivityResult() .

Просто переопределите onActivityresult в вашем классе Activity и передайте результат фрагменту из действия, вы можете найти фрагмент, но id вашего тега

Сделать метод onActivityResult в главной операции, как этот

  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //super.onActivityResult(requestCode, resultCode, data); // Check if image is captured successfully super.onActivityResult(requestCode, resultCode, data); for (Fragment fragment : getSupportFragmentManager().getFragments()) { fragment.onActivityResult(requestCode, resultCode, data); } } 

Он передаст код результата его дочернему фрагменту.