Kotlin Android cơ bản: Những API trong Android cơ bản với Kotlin

0
362
Bài này thuộc phần 2 của 4 phần trong series Kotlin Android cơ bản

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. 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ếu bạn là Android Developer thì 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.

Kotlin Android cơ bản- Những API trong Android cơ bản

Những API trong Android cơ bản với Kotlin

#1. Chào tạm biệt findViewById

Kotlin cũng cấp một plugin cho Android 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.

#2. Cách khai báo các loại Array trong 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é!

Xem tiếp các bài trong Series
Phần trước: Kotlin Android cơ bản: khóa học dành cho newbiePhần kế tiếp: Kotlin Android Fragment, Activity, & Dialog Fragment

Bình luận. Đặt câu hỏi cũng là một cách học

avatar
  Theo dõi bình luận  
Thông báo