Każdemu kto pisał, nawet najprostszą, aplikację na Androida w javie znana jest struktura:
Button button = findViewById(R.id.button)
button.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(getApplicationContext(), "przycisk został kliknięty", Toast.LENGTH_SHORT).show();
}
})
Pozwala ona dostać się do przycisku, który zdefiniowany jest na widoku i wygląda w ten sposób:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show text"/>
W Kotlinie, dzięki Synthetic Binding, nie trzeba już wywoływać findViewById(). Można wprost używać komponentów za pomocą ich identyfikatorów.
// napiszemy "button" i od razu możemy coś z nim zrobić:
button.setOnClickListener {
Toast.makeText(this, "przycisk został kliknięty", Toast.LENGTH_SHORT).show()
}
Pod spodem Kotlin ( a właściwie plugin: kotlin-android-extensions ) sam znajdzie przycisk na widoku z jego deklaracją w kodzie - używając właśnie findViewById(). Jednak będzie to zoptymalizowane (buforowanie widoków w kontenerach - dokumentacja dla ciekawych )