Using Views

suggest change

Assuming we have an activity with an example layout called activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width=“match_parent” android:layout_height=“match_parent”>

</LinearLayout>

We can use Kotlin extensions to call the button without any additional binding like so:

import kotlinx.android.synthetic.main.activity_main.my_button

class MainActivity: Activity() {

override fun onCreate(savedInstanceBundle: Bundle?) { super.onCreate(savedInstanceBundle) setContentView(R.layout.activity_main) // my_button is already casted to a proper type of “Button” // instead of being a “View” my_button.setText(“Kotlin rocks!”) }

}

You can also import all ids appearing in layout with a \* notation

// my_button can be used the same way as before
import kotlinx.android.synthetic.main.activity_main.*

Synthetic views can’t be used outside of Activities/Fragments/Views with that layout inflated:

import kotlinx.android.synthetic.main.activity_main.my_button

class NotAView {

init { // This sample won’t compile! my_button.setText(“Kotlin rocks!”) }

}

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents