Use Kotlin Android Extensions to Replace findViewById

Kotlin Android Extensions is a great way to avoid writing findViewById in the activity or fragment.

Simply, add the kotlin-android-extensions plugin to the module level build.gradle file.

apply plugin: 'kotlin-android-extensions'

Only one step to enable the feature. Now, we can remove the manual initializations.

// Initialize the UI elements
val constraintLayout = findViewById<ConstraintLayout>(R.id.coordinatorLayout)
val responseTextView = findViewById<TextView>(R.id.responseTextView)
val bottomAppBar = findViewById<BottomAppBar>(R.id.bottomAppBar)
val fab = findViewById<FloatingActionButton>(R.id.fab)
val productRecyclerView = findViewById<RecyclerView>(R.id.productRecyclerView)
val filterButton = findViewById<Button>(R.id.filterButton)
val sortButton = findViewById<Button>(R.id.sortButton)

The compilers suggest us only one import to get all the synthetic properties available in the layout. If the above views are available in the activity_main layout then the following import is sufficient.

import kotlinx.android.synthetic.main.activity_main.*

If our Android project is not a pure Kotlin project and we want to remove findViewById function in both Kotlin and Java classes then implement View Binding rather than Android Extensions.

Popular posts from this blog

How to Read Metadata from AndriodManifest File

Mr Phone - Find The Next Best Phone You Want To Buy

Add Spacing to Recycler View Linear Layout Manager Using Item Decoration

Add Options Menu to Activity and Fragment

Create Assets Folder, Add Files and Read Data From It