вы можете использовать интерфейс для обмена данными между Fragment
и Activity
что-то вроде этого:
public Class MyFragment extends Fragment {
FragmentCommunicator communicator;
public void setCommunicator(FragmentCommunicator communicator) {
this.communicator = communicator;
}
@Override
public void OnDetach() {
communicator.fragmentDetached();
}
...
public Interface FragmentCommunicator {
public void fragmentDetached();
}
}
и в своей деятельности:
public Class MyActivity extends Activity Implements FragmentCommunicator {
...
MyFragment fragment = new MyFragment();
fragment.setCommunicator(this);
...
@Override
public void fragmentDetached() {
//Do what you want!
}
}
Edit:
новый подход устанавливает экземпляр интерфейса в onAttach
.
public void onAttach(Activity activity) {
if (activity instanceof FragmentCommunicator) {
communicator = activity;
} else {
throw new RuntimeException("activity must implement FragmentCommunicator");
}
}
теперь нет необходимости иметь setCommunicator
метод.