Skip to content

Instantly share code, notes, and snippets.

@JakeSteam
Last active October 22, 2018 21:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JakeSteam/868e9262ba540d38a2fca7ca56808b88 to your computer and use it in GitHub Desktop.
Save JakeSteam/868e9262ba540d38a2fca7ca56808b88 to your computer and use it in GitHub Desktop.
"Adding Callbacks From Fragment To Activity Or Activity To Application In Android" @ http://blog.jakelee.co.uk/2018/10/22/adding-callbacks-from-fragment-to-activity-or-activity-to-application-in-android
interface ActionHandler {
fun handleAction(actionCode: String)
}
companion object {
const val FRAGMENT_A_CLOSED = "com.example.fragment_a_closed"
}
fun closeFragment() {
try {
(activity as ActionHandler).handleAction(FRAGMENT_A_CLOSED)
} catch (e: ClassCastException) {
Timber.e("Calling activity can't get callback!")
}
dismiss()
}
class MainActivity: ActionHandler {
override fun handleAction(actionCode: String) {
when {
actionCode == FragmentA.FRAGMENT_A_CLOSED -> {
doSomething()
}
actionCode == FragmentB.FRAGMENT_B_CLOSED -> {
doSomethingElse()
}
actionCode == FragmentC.FRAGMENT_C_CLOSED -> {
doAnotherThing()
}
}
}
// Usual activity setup code snipped
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment