Kotlin for Android : Kotlin Android Extensions, way to forget findViewById

INTRODUCE

Kotlin Android Extensions là một plugin của Kotlin, nó cho phép recover view từ activity, fragment, view .. theo một cách trực tiếp nhất.

Để cài đặt Kotlin Android Extensions, cũng giống như những plugin khác, chúng ta sẽ install nó từ mục plugin của Android Studio:

How does it work

Giống như mình đã giới thiệu ở trên, với Kotlin Android Extensions, chúng ta có thể dễ dàng lấy được một view chúng ta đã define ở file xml và sử dụng chúng ở activity hay fragment thông qua giá trị id được khai báo.

Tỉ dụ chúng ta có một file xml như sau:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:id="@+id/textViewHelloWorld"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Hello World!"/>
 
</FrameLayout>

okie, chúng ta có một textview với id là textViewHelloWorld, việc chúng ta bây giờ rất đơn giản, nếu muốn sử dụng view này ở đâu đó, ví dụ như ở activity sau:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
 
  textViewHelloWorld.text = "Hello World!"
}

À để kotlin có thể hiểu được thì chúng ta cũng cần những import đặc biêt, tất nhiên và kotlin sẽ auto import cho chúng ta:

import <link_to_your_xml_file>.*

Recovering views from another view

Trong trường hợp này, chúng ta cũng chỉ cần thay đổi chút xíu đường dẫn import là okie:

import <link_to_your_xml_file>.view.*

Conclusion

Thực ra chúng ta có rất nhiều cách để có thể recover view trong android, tuy nhiên, như mình đã nói, với một plugin nhỏ nhỏ thế này, chúng ta chúng đã có một sự hỗ trợ đăc lực rồi. Nếu bạn đã quyết định sử dụng Kotlin cho dự án của mình, thì chẳng có một lí do nào để từ chối sử dụng Kotlin Android Extensions, đúng không nào


All Rights Reserved