Adakah yang bisa memberi tahu saya cara membuat yang EditText
tidak dapat diedit melalui XML? Saya mencoba setting android:editable
untuk false
, tetapi
- itu sudah ditinggalkan; dan
- tidak berhasil.
android
android-edittext
Fran Fitzpatrick
sumber
sumber
EditText
gaya dan mengizinkan pengguliran, gunakanUI.setReadOnly(myEditText, true)
dari perpustakaan ini . Ada beberapa properti yang harus diset, yang dapat Anda periksa di kode sumber .Jawaban:
Gunakan kode sederhana ini:
Berhasil.
Sunting: Untuk menambahkan
KeyListener
nanti, lakukan yang berikut1: atur pendengar kunci ke tag
textView
2: dapatkan pendengar kunci dari tag dan atur kembali ke
textView
sumber
setFocusable()
karena doc mengatakan bahwa implementasi default dapat diubah jika diubah.Tambahkan ini ke file xml EditText Anda:
Ini akan melakukan efek yang sama dengan
android:editable="false"
. Berfungsi untuk saya, semoga juga berhasil untuk Anda.sumber
TextInputLayout
Biarkan Edittext Anda menjadi
editText.setKeyListener(null);
akan bekerja tetapi tidak mendengarkan kunci.
Pengguna dapat melihat kursor pada edittext.
Anda dapat mencoba
editText.setEnabled(false);
Itu berarti pengguna tidak dapat melihat kursor. Untuk sekadar mengatakan itu akan menjadi
TextView
.sumber
Seperti disebutkan dalam jawaban lain, Anda bisa melakukan
setEnabled(false)
tetapi karena Anda bertanya bagaimana cara mengaturnya melalui XML, berikut adalah cara melakukannya.Tambahkan atribut berikut ke
EditText
:sumber
enabled
tidak ditinggalkan.editable
adalah.nonaktifkan dari XML (satu baris):
aktifkan kembali dari Jawa, jika perlu (juga satu baris):
sumber
Mereka membuat "dapat diedit" usang tetapi tidak memberikan yang sesuai bekerja di inputType.
Omong-omong, apakah inputType = "tidak ada" berpengaruh? Menggunakannya atau tidak, tidak ada bedanya sejauh yang saya lihat.
Misalnya, editText default dikatakan sebagai satu baris. Tetapi Anda harus memilih jenis input untuk menjadi satu baris. Dan jika Anda memilih "tidak ada", itu masih multiline.
sumber
Kombinasi ini bekerja untuk saya:
sumber
Seperti yang Anda sebutkan android: dapat diedit sudah usang. android: inputType = "none" harus digunakan sebagai gantinya tetapi tidak berfungsi karena bug ( https://code.google.com/p/android/issues/detail?id=2854 )
Tetapi Anda dapat mencapai hal yang sama dengan menggunakan fokus.
Melalui XML:
Dari kode:
sumber
jika Anda ingin mengkliknya, tetapi tidak ingin mengeditnya, coba:
sumber
Gunakan saja
android:enabled="false"
. Ini juga akan memberikan tampilanEditText
yang membuatnya tidak dapat diedit.sumber
dan gunakan yang berikut:
sumber
Jika Anda ingin melakukannya dalam kode java cukup gunakan baris ini untuk menonaktifkannya:
Dan ini untuk mengaktifkannya:
sumber
Saya mencoba melakukan:
yang seharusnya berhasil, tetapi bagi saya tidak.
Saya selesai dengan kode ini:
yang bekerja dengan sempurna.
sumber
Ketika saya ingin suatu kegiatan tidak fokus pada EditText dan juga tidak menampilkan papan ketik saat diklik, inilah yang berhasil bagi saya.
Menambahkan atribut ke tata letak utama
dan kemudian bidang EditText
Berikut ini sebuah contoh:
sumber
Selain @mahe madi, Anda dapat mencoba ini juga
Metode ini akan menyembunyikan kursor, kehilangan fokus dan yang lebih penting mengatur warna teks menjadi hitam seperti TextView.
Dan untuk mengembalikan Kembali ke editText cukup lakukan ini untuk mendapatkan semua properti EditText.
Semoga Membantu :)
sumber
Anda dapat menggunakan
android:editable="false"
tetapi saya benar-benar akan menyarankan Anda untuk menggunakansetEnabled(false)
karena memberikan petunjuk visual kepada pengguna bahwa kontrol tidak dapat diedit. Isyarat visual yang sama digunakan oleh semua widget yang dinonaktifkan dan konsistensi yang baik.sumber
Atribut "longClickable" menonaktifkan aksi tekan lama yang menyebabkan opsi "Tempel" dan atau "Pilih Semua" muncul sebagai tooltip.
sumber
Saya sudah mencoba yang berikut ini:
tetapi masalahnya adalah jika teks edit adalah yang pertama dalam bentuk maka itu mendapatkan fokus dan kode pickCode () yang meluncurkan aktivitas baru disebut langsung. Jadi saya memodifikasi kode sebagai berikut dan sepertinya berfungsi dengan baik (kecuali saya tidak dapat mengatur fokus pada edit teks tetapi saya tidak perlu):
Salam Hormat,
Komentar diterima,
John Goche
sumber
Saya menggunakan
EditText.setFocusable(false)
dan mengatur true lagi jika saya ingin mengedit.sumber
Coba ini :
sumber
Dengan cara ini melakukan pekerjaan untuk saya, saya dapat memilih dan menyalin ke clipboard, tetapi saya tidak dapat memodifikasi atau menempel.
sumber
android: dapat diedit sudah usang jadi gunakan inputType sebagai gantinya.
sumber
Saya telah menghadapi masalah yang sama tetapi setelah pengamatan saya menemukan bahwa
android:editable="false"
hanya berfungsi ketika inputtype (android:inputType="ANY_VALUE"
) tidak diberikan dalam Edittext.Hapus inputType dari EditText dan gunakan editable = false, itu berfungsi dengan baik.
sumber
Saya menyelesaikan ini dengan dialog.
sumber
Jawaban singkat: Saya menggunakan
android:focusable="false"
dan berhasil. Mendengarkan klik juga berfungsi sekarang.sumber
Mencoba
sumber
Coba kode ini. Ini bekerja di proyek saya, jadi itu akan bekerja di proyek Anda.
sumber