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

Add Spacing to Recycler View Linear Layout Manager Using Item Decoration

Bottom App Bar for Android - A Material Design Component

Perform a Post Request Using Volley

How to Read Metadata from AndriodManifest File

How to Set an Android App as a Default Dialer