Bài viết trước mình đã hướng dẫn các bạn cấu hình Android Studio để có thể code được Kotlin. Nếu bạn đang sử dụng Android Studio phiên bản mới nhất thì có thể bỏ qua bài viết đó mà vào thằng bài viết này.
Nếu bạn là Android Developer thif có lẽ những API này quá quen thuộc, nhắm mắt cũng có thể code được bằng Java. Nhưng với Kotlin thì lại khác, vì cú pháp hai ngôn ngữ không giống nhau.
Để khỏi bỡ ngỡ khi bắt đầu dự án Android sử dụng Kotlin, chúng ta sẽ cùng nhau xem những API trong Android cơ bản khi viết bằng Kotlin sẽ như nào nhé!
Nội dung chính của bài viết
Những API trong Android cơ bản với Kotlin
#1. Chào tạm biệt findViewById
Kotlin cung cấp một plugin cho phép bạn truy cập vào nội dung của layout xml đơn giản hơn bao giờ hết.
Bạn chỉ cần thêm plugin bằng cách cấu hình build.gralde
apply plugin: ‘kotlin-android-extensions’
Sau đó thì import vào trong kotlin file nào bạn cần sử dụng plugin. Ví dụ như MainActivity.kt
import kotlinx.android.synthetic.main.activity_main.*
Cách sử dụng rất đơn giản, giả sử bạn có layout như sau:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv_vntalking" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello VNTALKING" /> </FrameLayout>
Bạn muốn thay đổi nội dung của TextView trên thì trong MainActivity.kt, bạn chỉ cần gọi hàm sau:
tv_vntalking.text = "Hello"
Quá ngắn gọi phải không?
Giải thích thêm: Về bản chất thì Kotlin sử dụng cơ chế tìm view trong cache, nếu trong cache không tồn tại nó sẽ tìm và add vào trong cache.
Nhìn lại dòng code thay đổi text trên:
tv_vntalking.text = "Hello"
Thực chất nó được convert thành như sau:
((TextView)this._$_findCachedViewById(id.textFramgia)).setText((CharSequence)"Hello Kotlin! I'm Framgia's staff.");
Các thuộc tính không có thực, plugin không tạo thuộc tính cho mỗi lượt xem. Nó sẽ chỉ thay thế code trong quá trình biên dịch để truy cập bộ nhớ view cache, đưa nó vào đúng loại và gọi phương thức ra.
#2. Cách khai báo Array với Kotlin
Trong Kotin, bạn cũng có thể sử dụng Array giống như Java.
Ví dụ:
val countries = arrayOf("India","USA","China","Australia","Sri Lanka")
Ngoài ra, mình giới thiệu một số kiểu dữ liệu Lists khá hay ho:
private var itemList = listOf<Int>(1, 2, 3) //behaves like collections private var itemListArrayList = mutableListOf<Int>(1, 2, 3) //avoids duplicate values private var noDuplicateList = hashSetOf<String>("azbc", "afb", "c", "c") //"key" to "value" private var mapList = hashMapOf<String, Int>("a" to 1, "b" to 2, "c" to 3)
#3. Vòng lặp trong Kotlin
Vòng lặp cũng vậy, cách hoạt động và cú pháp tương tự như Java. Nghĩa là các từ khóa: While, do while, break và continue hoàn toàn giống java về cơ chế.
Như từ khóa break để dừng một vòng lặp.
for ((index, value) in itemList.withIndex()) { Log.i("tag", "$index = $value") }
#4. Truy cập View từ một View khác
Bạn có thể gọi subview trực tiếp từ một view khác như sau:
val itemView = itemViewCard //Là một view cha chứa nhiều các subview itemView.itemImage.setImageResource(R.mipmap.ic_launcher) itemView.itemTitle.text = "My Text"
Bạn thấy đấy, khi đã quen viết code với Kotlin thì bạn sẽ cảm thấy rất sướng. Số lượng dòng code giảm đi đáng kể, không còn dài lê thê như Java nữa.
Bài viết này mình đã nêu ra API trong Android với Kotlin, bài sau mình sẽ hướng dẫn các bạn cách viết Kotlin khi cần tương tác với Activity, Fragment và Dialog.
Các bạn nhớ đón đọc nhé!
Đọc thêm về “ma lực” của Kotlin:
Bình luận. Cùng nhau thảo luận nhé!