Ada dua EditText
, saat memuat halaman teks diatur dalam EditText pertama, Jadi sekarang kursor akan berada di tempat awal EditText
, saya ingin mengatur posisi kursor di EditText kedua yang tidak mengandung data. Bagaimana cara melakukannya?
235
Jawaban:
Di mana posisi adalah int:
sumber
Saya telah melakukan cara ini untuk mengatur posisi kursor ke akhir teks setelah memperbarui teks dari EditText secara terprogram di sini,
etmsg
adalah EditTextsumber
etmsg.setText("my new text..."); etmsg.setSelection(etmsg.length());
Bagaimana cara mengatur posisi kursor EditText di Android
Kode di bawah ini Setel kursor ke Mulai di
EditText
:Di bawah Kode Set kursor untuk mengakhiri dari
EditText
:Kode di bawah ini adalah Tetapkan kursor setelah beberapa posisi Karakter 2:
sumber
Hanya ada satu posisi di EditText kosong, itu
setSelection(0)
.Atau apakah Anda maksudnya ingin fokus ke
EditText
aktivitas Anda saat aktivitas dibuka? Dalam hal inirequestFocus()
sumber
gunakan baris di bawah ini
e2
adalah edit Nama Objek tekssumber
Biarkan editText2 adalah tampilan EditText kedua Anda. Lalu masukkan potongan kode berikut di onResume ()
atau dimasukkan
dalam tata letak xml Anda dari tampilan EditText kedua.
sumber
beberapa saat edit kursor teks donot datang pada posisi tertentu adalah jika kita langsung menggunakan
editText.setSelection(position);
. Dalam hal ini Anda dapat mencobasumber
Jika Anda ingin meletakkan kursor pada posisi tertentu pada EditText, Anda dapat menggunakan:
Selain itu, ada kemungkinan untuk mengatur posisi awal dan akhir, sehingga Anda secara terprogram memilih beberapa teks, dengan cara ini:
Harap perhatikan bahwa pengaturan pilihan mungkin rumit karena Anda dapat menempatkan kursor sebelum atau setelah karakter, gambar di bawah ini menjelaskan cara indeks berfungsi dalam kasus ini:
Jadi, jika Anda menginginkan kursor di akhir teks, cukup setel ke
yourEditText.length()
.sumber
setSelection(int index)
Metode diEdittext
harus memungkinkan Anda untuk melakukan ini.sumber
sebagai pengingat: jika Anda menggunakan
edittext.setSelection()
untuk mengatur kursor, dan itu TIDAK berfungsi saat menyiapkanalertdialog
misalnya, pastikan untuk mengaturselection()
SETELAH dialog telah dibuatcontoh:
sumber
Kode ini akan membantu Anda menampilkan kursor di posisi terakhir mengedit teks.
sumber
Ingat panggilan
requestFocus()
sebelumnyasetSelection
untuk edittext.sumber
sumber
Jika Anda ingin mengatur kursor setelah
n
karakter dari kanan ke kiri maka Anda harus melakukan seperti ini.Jika teks edittext suka
dan Anda ingin memindahkan kursor di posisi ke-6 dari kanan
Maka itu akan memindahkan kursor di-
sumber
sumber
sumber
Atur kursor ke baris dan kolom
Anda dapat menggunakan kode berikut untuk mendapatkan posisi di EditText Anda yang sesuai dengan baris dan kolom tertentu. Anda kemudian dapat menggunakan
editText.setSelection(getIndexFromPos(row, column))
untuk mengatur posisi kursor. Panggilan ke metode ini dapat dilakukan:getIndexFromPos(x, y)
Pergi ke kolom y dari baris xgetIndexFromPos(x, -1)
Pergi ke kolom terakhir dari baris xgetIndexFromPos(-1, y)
Pergi ke kolom y dari baris terakhirgetIndexFromPos(-1, -1)
Pergi ke kolom terakhir dari baris terakhirSemua batas baris dan kolom ditangani; Memasuki kolom yang lebih besar dari panjang garis akan mengembalikan posisi di kolom terakhir dari garis. Memasukkan baris yang lebih besar dari jumlah baris EditText akan menuju ke baris terakhir. Itu harus cukup andal karena sedang diuji berat.
Pertanyaannya sudah dijawab tetapi saya pikir seseorang bisa melakukan itu.
Ini bekerja dengan mengulangi setiap karakter, menambah jumlah baris setiap kali menemukan pemisah baris. Ketika jumlah baris sama dengan baris yang diinginkan, itu mengembalikan indeks saat ini + kolom, atau indeks akhir baris jika kolom di luar batas. Anda juga dapat menggunakan kembali
getTrueLineCount()
metode ini, ia mengembalikan jumlah baris mengabaikan pembungkus teks, tidak sepertiTextView.getLineCount()
.sumber
Di kotlin, Anda dapat membuat fungsi ekstensi seperti ini:
dan kemudian cukup menelepon
myEditText.placeCursorAtLast()
sumber
Jika Anda ingin mengatur posisi kursor di EditText? coba kode di bawah ini
sumber
Cara mengatasi masalah posisi kursor yang secara otomatis pindah ke posisi terakhir setelah memformat di US Mobile seperti (xxx) xxx-xxxx di Android.
Tetapkan metode di bawah ini untuk setiap kelas aktivitas dalam kasus saya. Nama aktivitas adalah AppUtil dan akses secara global
Dan jika Anda ingin mengatur posisi tertentu
sumber
Saya percaya cara paling sederhana untuk melakukan ini hanya menggunakan bantalan.
Katakan di bagian edittext xml Anda, tambahkan android: paddingLeft = "100dp" Ini akan memindahkan posisi awal Anda dari kursor 100dp langsung dari ujung kiri.
Cara yang sama, Anda dapat menggunakan android: paddingRight = "100dp" Ini akan memindahkan posisi akhir Anda dari kursor 100dp ke kiri dari ujung kanan.
Untuk detail lebih lanjut, lihat artikel ini di blog saya : Android: Mengatur Kursor Memulai dan Mengakhiri Posisi di Widget EditText
sumber