Я думаю, вы получите подсказку из этого решения.Потому что я не могу написать код для вашего требования, но это даст вам представление о том, что вы можете сделать.
public class Fragment1 extends android.support.v4.app.Fragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof ActivityHome) {
((ActivityHome) context).setFragment1(this);
}
}
}
public class ActivityHome extends AppCompatActivity {
Fragment1 fragment1;
public void setFragment1(Fragment1 fragment1) {
this.fragment1 = fragment1;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (fragment1 != null) fragment1.onActivityResult(requestCode, resultCode, data);
}
}
Даже вы можете реализовать это с помощью интерфейсов, но я предложу вам EventBus, поскольку это крошечная библиотека, которая делает общение очень простым.
(1) Создание класса данных
public static class MessageEvent { /* Additional fields if needed */ }
(2) Подписаться на событие
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* Do something */};
(3) Регистрация и отмена регистрации
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
и запуск из любого места
EventBus.getDefault().post(new MessageEvent());