I have an Activity
with multiple Fragment
s. I want to show a DialogFragment
or open another Fragment
from one of the
Just follow the documentation:
Fragment
:
public class HeadlinesFragment extends Fragment {
// Container Activity must implement this interface
public interface OnHeadlineSelectedListener {
public void onArticleSelected(int position);
}
OnHeadlineSelectedListener mCallback;
// "Bind" to the Activity where this Fragment lives
public void setOnHeadlineSelectedListener(Activity activity) {
mCallback = (OnHeadlineSelectedListener) activity;
}
// ...
// This will send info to the Activity where the Fragment lives
private void someOtherFunctionOrListener(int position) {
mCallback.onArticleSelected(position); // pass info into Activity
}
}
Activity
:
public static class MainActivity extends Activity
implements HeadlinesFragment.OnHeadlineSelectedListener{
// ...
@Override
public void onAttachFragment(Fragment fragment) {
if (fragment instanceof HeadlinesFragment) {
HeadlinesFragment headlinesFragment = (HeadlinesFragment) fragment;
headlinesFragment.setOnHeadlineSelectedListener(this);
}
}
@Override
public void onArticleSelected(int position) {
// Call received from Fragment
}
}