right i have a sign in button located exactly in the same place on every activity and i have bout 20 activities at the moment but will rise a lot higher soon, and i don’t really want to be copying and pasting the same code in to each activity, so I’m looking for a simple, efficient solution to handle the onClick event which will work globally throughout the app.
For example, if User A clicks on the sign in button on Activity 1 and signs in, it will show that he is signed in on Activity 2 and 3 and so on.. until they log out.
The sign in button has the same ID throughout the whole application which is “@+id/signIn”
Would it be easier to call a single function at the beginning of each activity? I thought that wouldn’t be every effective use of processing power etc?!
Any suggestions and/or guidance would be much appreciated. Thank you 🙂
You can’t avoid implementing that listener in all of your activities in either ways. But you can do it in a bit more organized way:
You could write a custom header layout for your application (
/res/layout/header.xml), in which you have the “Sign In” button with a click listener set (pointing to anonSignInClickedmethod):Then you include this header to each activity layout:
You could also create an interface which contains an
onSignInClickedmethod declaration, and by all your activities implementing that interface you force them to define theonSignInClickedmethod’s body.What you actually do there can also be wrapped into
accessible class, or
your
Applicationextension class.so in all of your activities this method can be:
or
If you choose the second way, don’t forget to update your
androidManifes.xmlby setting thenameattribute of yourapplicationtag: