Передать результат активности в правильный фрагмент - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть несколько фрагментов в виде пейджера. Некоторые из них могут активировать метод, чтобы прикрепить какой-либо файл или сделать фотографию. В настоящее время из фрагмента я вызываю метод из действия, чтобы получить файл (намерение выбора файла) или сделать фотографию (намерение камеры), обработать его в onActivityResult и хотел бы доставить этот файл в соответствующий фрагмент, но иногда он отображается как видимый фрагмент отличается от того, что должно быть. Я хотел, чтобы он был в одном месте вместо onActivityResult в каждом фрагменте, поэтому я хотел поместить его в действие. Это правильный путь или как я могу сделать это правильно?

Чтобы уточнить, я хочу передать новый объект, созданный внутри onActivityResult, чтобы показать что-то в представлении рециркуляции фрагментов.

Я использую ниже код для проверки видимого фрагмента:

private Fragment getVisibleFragment() {
        FragmentManager fragmentManager = MyActivity.this.getSupportFragmentManager();
        List<Fragment> fragments = fragmentManager.getFragments();
        for (Fragment fragment : fragments) {
            if (fragment != null && fragment.isVisible())
                return fragment;
        }
        return null;
    }

1 Ответ

0 голосов
/ 14 февраля 2020

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

 GallaryFragment mFragment = new GallaryFragment(); 

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == YOUR_FRAGMENT_CODE) {
        try {
            //Your Selected Data From Gallery
            mFragment.onActivityResult(requestCode, resultCode, data);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    super.onActivityResult(requestCode, resultCode, data);
 }
...