In this tutorial android inter fragment communication is explained. Fragments in android are utilized to fully use screen area of the mobile device.Â Our final target is to make an application that will have one fragment in the activity at the time when the mobile device is in vertical position, and have more then one fragment when the mobile device is in horizontal position. So far, we will focus on more simple example in which we have two fragments inside one activity all the time. So in here, one fragment communicating with other fragments example in android is given. Let’s start new android project and add two fragments inside. Then, give no id to the fragments in their XML. Instead, fragments will have id inside of XML of the only activity inside the project. Now, let’s call upper fragment as “Upper”, and lower fragment as “Lower”.Â Then set background color of “Upper” to blue (as the color of the sky) and set background color of the “Lower” to green (as the color of the grass), in order to make the difference in appearance. Then put an button in “Upper” fragment, and one text view in “Lower” fragment. Change fragment layout on both fragments from <FrameLayout to <RelativeLayout. Here is XML code for “Upper” fragment:
And here is XML code for “Lower” fragment:
Now, we will statically add this two fragments in XML of main activity.
When we start our application, we obtain something like this.
But we would like to have no margins, and to cover all width of the screen. So make following changes:
We have now full width covered, but with margins. Let’s remove them.
After removing margins, XML code of content_main is
Now, we want to allow fragments to communicate each other. Note: they can communicate directly, but it is very bad practice since this way of communication is called coupling, and this is something that we want to avoid by any means, because when we rotate the mobile device, directly called fragment will break the application
In order to make application stable, we need to use interface class that will provide inter fragment communication channel that will be stable for use, and fragments will be reusable, if there is no direct reference of one fragment in another.