Skip to content

idapgroup/ArgumentDelegate

Repository files navigation

Argument Delegate

Property binding for Android Bundle arguments. Written for simple bundle unpacking for Kotlin users.

Download

Download

Add repository to your root build.gradle

repositories {
    jcenter()
}
dependencies {
  implementation 'com.idapgroup:argument-delegate:latest-version'
}

Usage sample

class ExampleActivity : Activity {

    val userName: String by argumentDelegate()
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // your activity setup code
        Log.d("ExampleActivity", "userName - $userName")
    }

}

Remember: Bundled argument name must have the same name as property have. For current example:

val bundle = Bundle().apply {
    putString("userName", "John")
}

Additional info

argumentDelegate is an extension function for Fragment and Activity. If you want to use it out of the Activity/Fragment then you should implement argumentWrapper block. Example:

class Example {
    private lateinit var bundle: Bundle
    private val wrapper = { a: Example -> a.bundle }
    val userName: String by argumentDelegate(wrapper)
}