Create interface
public interface ListenFromActivity {
void doSomethingInFragment();
}
In Activity class keep refrence of ListenFromActivity
interface
public ListenFromActivity activityListener;
Make public method to set listener
public void setActivityListener(ListenFromActivity activityListener) {
this.activityListener = activityListener;
}
Add some trigger point in activity class, here I have used user interaction
@Override
public void onUserInteraction() {
super.onUserInteraction();
if (null != activityListener) {
activityListener.doSomethingInFragment();
}
}
Now in Fragment class
make your fragment implement interface class
public class SomeFragment extends Fragment implements ListenFromActivity
Android studio will prompt you to implement method of interface in fragment
void doSomethingInFragment()
{//Add your code here
}
Final part part listener instance to activity like this in fragment onCreate
method
((ListnerActivity) getActivity()).setActivityListener(SomeFragment.this);
DONE!!. now you can call fragment method from activity.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…