Skip to content

Instantly share code, notes, and snippets.

@dphans
Created April 10, 2018 22:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dphans/16794700a9c16b823cbb002c63d7b6a1 to your computer and use it in GitHub Desktop.
Save dphans/16794700a9c16b823cbb002c63d7b6a1 to your computer and use it in GitHub Desktop.
Android Data Binding Example > Activities > BaseActivity.kt
package com.dinophan.authapp.bases
import android.databinding.DataBindingUtil
import android.databinding.ViewDataBinding
import android.os.Bundle
import android.os.PersistableBundle
import android.support.annotation.LayoutRes
import android.support.v7.app.AppCompatActivity
abstract class BaseActivity<in T>(@LayoutRes private val layoutResId: Int? = null): AppCompatActivity() where T: ViewDataBinding {
abstract fun onActivityCreated(dataBinder: T)
final override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
this@BaseActivity.initial()
}
final override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this@BaseActivity.initial()
}
private fun initial() {
this@BaseActivity.layoutResId?.let { layoutId ->
val dataBinder = DataBindingUtil.setContentView<T>(this@BaseActivity, layoutId)
this@BaseActivity.onActivityCreated(dataBinder)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment