Intereting Posts

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

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

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

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

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

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); } } 

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