Let's consider a case where I have Fragment A
and Fragment B
.
B
declares:
public interface MyInterface {
public void onTrigger(int position);
}
A
implements this interface.
When pushing Fragment B
into stack, how should I pass reference of Fragment A
for it in Bundle
so A
can get the onTrigger
callback when needed.
My use case scenario is that A
has ListView
with items and B
has ViewPager
with items. Both contain same items and when user goes from B -> A
before popping B
it should trigger the callback for A
to update it's ListView
position to match with B
pager position.
Thanks.
Passing interface to Fragment
I think you are communicating between two Fragment
In order to do so, you can have a look into Communicating with Other Fragments
public class FragmentB extends Fragment{
MyInterface mCallback;
// Container Activity must implement this interface
public interface MyInterface {
public void onTrigger();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (MyInterface ) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement MyInterface ");
}
}
...
}