Android Academy · Pelajaran

Opsi dan Tindakan Papan Ketik

Pelajari tipe papan ketik, tindakan IME, dan fokus.

Pelajaran 4 dari 413 langkah

Opsi dan Tindakan Papan Ketik adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.

Keyboard yang Tepat untuk Kebutuhannya

Form yang dibuat dengan baik menampilkan keyboard di layar yang tepat: digit untuk telepon, tombol @ untuk email, dan tombol "Berikutnya" untuk berpindah antar-kolom. Compose mengatur semuanya dengan KeyboardOptions dan KeyboardActions.

Dalam pelajaran ini, Anda akan mengatur tipe keyboard, tindakan IME, dan fokus antar-kolom.

Memilih Tipe Keyboard

Teruskan KeyboardOptions ke kolom teks dan atur keyboardType. Sistem kemudian menampilkan keyboard yang sesuai dengan data.

Nilai yang umum: Text, Number, Email, Phone, Password.

var email by remember { mutableStateOf("") }

OutlinedTextField(
    value = email,
    onValueChange = { email = it },
    label = { Text("Email") },
    keyboardOptions = KeyboardOptions(
        keyboardType = KeyboardType.Email
    )
)

Keyboard Angka

Untuk jumlah atau PIN, gunakan KeyboardType.Number. Gabungkan dengan pemfilteran input agar hanya digit yang diterima, seperti yang telah Anda pelajari dalam pelajaran validasi.

var pin by remember { mutableStateOf("") }

OutlinedTextField(
    value = pin,
    onValueChange = { pin = it.filter { c -> c.isDigit() } },
    label = { Text("PIN") },
    keyboardOptions = KeyboardOptions(
        keyboardType = KeyboardType.Number
    )
)

Menyembunyikan Kata Sandi

Kata sandi harus disamarkan. Gunakan visualTransformation = PasswordVisualTransformation() bersama tipe keyboard kata sandi.

State tetap menyimpan karakter sebenarnya; hanya tampilannya yang disamarkan.

var password by remember { mutableStateOf("") }

OutlinedTextField(
    value = password,
    onValueChange = { password = it },
    label = { Text("Password") },
    visualTransformation = PasswordVisualTransformation(),
    keyboardOptions = KeyboardOptions(
        keyboardType = KeyboardType.Password
    )
)

Tombol Tindakan IME

Tombol di kanan bawah keyboard adalah tindakan IME. Atur tombol tersebut dengan imeAction. Gunakan Next untuk berpindah ke kolom berikutnya dan Done pada kolom terakhir.

OutlinedTextField(
    value = name,
    onValueChange = { name = it },
    label = { Text("Name") },
    keyboardOptions = KeyboardOptions(
        imeAction = ImeAction.Next
    )
)

Merespons Tindakan IME

Untuk merespons saat pengguna mengetuk tombol tersebut, teruskan KeyboardActions. Setiap tindakan (onNext, onDone, onSearch) adalah lambda yang Anda implementasikan.

Di sini, menekan Done akan menyembunyikan keyboard.

val keyboard = LocalSoftwareKeyboardController.current

OutlinedTextField(
    value = text,
    onValueChange = { text = it },
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
    keyboardActions = KeyboardActions(
        onDone = { keyboard?.hide() }
    )
)

Memindahkan Fokus ke Kolom Berikutnya

Dalam form dengan banyak kolom, tombol Berikutnya harus melompat ke kolom berikutnya. Gunakan LocalFocusManager dan panggil moveFocus.

val focusManager = LocalFocusManager.current

OutlinedTextField(
    value = email,
    onValueChange = { email = it },
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next),
    keyboardActions = KeyboardActions(
        onNext = { focusManager.moveFocus(FocusDirection.Down) }
    )
)

Menghapus Fokus Saat Selesai

Pada kolom terakhir, menghapus fokus akan menutup keyboard dan membatalkan pilihan kolom. Panggil focusManager.clearFocus() di dalam onDone.

OutlinedTextField(
    value = password,
    onValueChange = { password = it },
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
    keyboardActions = KeyboardActions(
        onDone = { focusManager.clearFocus() }
    )
)

Meminta Fokus Secara Terprogram

Terkadang Anda ingin sebuah kolom langsung mendapatkan fokus saat layar muncul, misalnya kotak pencarian. Pasang FocusRequester dan minta fokus di dalam LaunchedEffect.

val focusRequester = remember { FocusRequester() }

LaunchedEffect(Unit) { focusRequester.requestFocus() }

OutlinedTextField(
    value = query,
    onValueChange = { query = it },
    modifier = Modifier.focusRequester(focusRequester),
    label = { Text("Search") }
)

Kapitalisasi dan Koreksi Otomatis

KeyboardOptions juga mengatur capitalization dan autoCorrectEnabled. Gunakan huruf kapital di awal setiap kata untuk nama, atau matikan koreksi otomatis untuk nama pengguna agar tidak diubah secara keliru.

OutlinedTextField(
    value = fullName,
    onValueChange = { fullName = it },
    label = { Text("Full name") },
    keyboardOptions = KeyboardOptions(
        capitalization = KeyboardCapitalization.Words,
        autoCorrectEnabled = false
    )
)

Kotlin Murni: Memilih Tindakan IME

Logika "Berikutnya untuk setiap kolom kecuali kolom terakhir, Selesai untuk kolom terakhir" adalah Kotlin biasa. Di sini, kami memetakan posisi kolom ke label tindakan yang harus ditampilkan.

fun imeActionFor(index: Int, lastIndex: Int): String =
    if (index == lastIndex) "Done" else "Next"

fun main() {
    val fields = listOf("name", "email", "password")
    fields.forEachIndexed { i, field ->
        println("$field -> ${imeActionFor(i, fields.lastIndex)}")
    }
}

Pemeriksaan Singkat

Anda ingin tombol di kanan bawah keyboard bertuliskan "Berikutnya" dan, saat diketuk, memindahkan fokus ke kolom di bawahnya. Dua hal apa yang Anda perlukan?

Ringkasan

Sekarang Anda dapat membuat form yang memahami kebutuhan keyboard:

  • KeyboardOptions mengatur keyboardType, imeAction, kapitalisasi, dan koreksi otomatis.
  • Samarkan kata sandi dengan PasswordVisualTransformation.
  • KeyboardActions merespons Berikutnya/Selesai/Cari.
  • LocalFocusManager memindahkan atau menghapus fokus; FocusRequester memberikan fokus ke kolom sesuai kebutuhan.

Dengan demikian, perangkat untuk membangun form telah lengkap: input, state, validasi, dan keyboard. Anda siap membuat form Compose yang rapi dan bersahabat.

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
36
Pelajaran
152

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Opsi dan Tindakan Papan Ketik” gratis?

Ya — teks lengkap “Opsi dan Tindakan Papan Ketik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Opsi dan Tindakan Papan Ketik”?

Pelajari tipe papan ketik, tindakan IME, dan fokus. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Android Academy?

Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Opsi dan Tindakan Papan Ketik” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. TextField dan Input Pengguna
  2. Mengelola Status Formulir
  3. Memvalidasi Input
  4. Opsi dan Tindakan Papan Ketik
← Kembali ke Android Academy