Opsi dan Tindakan Papan Ketik
Pelajari tipe papan ketik, tindakan IME, dan fokus.
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:
KeyboardOptionsmengaturkeyboardType,imeAction, kapitalisasi, dan koreksi otomatis.- Samarkan kata sandi dengan
PasswordVisualTransformation. KeyboardActionsmerespons Berikutnya/Selesai/Cari.LocalFocusManagermemindahkan atau menghapus fokus;FocusRequestermemberikan 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.
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
- TextField dan Input Pengguna
- Mengelola Status Formulir
- Memvalidasi Input
- Opsi dan Tindakan Papan Ketik