Apakah ada cara pintar untuk membiarkan pengguna beralih antara sembunyikan dan melihat kata sandi di EditText android? Sejumlah aplikasi berbasis PC memungkinkan pengguna melakukan ini.
176
Anda dapat secara dinamis mengubah atribut dari TextView. Jika Anda ingin mengatur Atrribute XML android:password
menjadi true, tampilan akan menunjukkan titik jika Anda mengaturnya ke false teks ditampilkan.
Dengan metode setTransformationMethod, Anda harus dapat mengubah atribut ini dari kode. (Penafian: Saya belum menguji apakah metode ini masih berfungsi setelah tampilan ditampilkan. Jika Anda mengalami masalah dengan itu beri saya komentar untuk saya ketahui.)
Kode sampel lengkap akan menjadi
yourTextView.setTransformationMethod(new PasswordTransformationMethod());
untuk menyembunyikan kata sandi. Untuk memperlihatkan kata sandi, Anda dapat mengatur salah satu metode transformasi yang ada atau mengimplementasikan TransformationMethod kosong yang tidak melakukan apa pun dengan teks input.
yourTextView.setTransformationMethod(new DoNothingTransformation());
setTransformationMethod(null)
.Ini sangat mudah untuk dicapai sejak Perpustakaan Dukungan v24.2.0.
Yang perlu Anda lakukan hanyalah:
Tambahkan pustaka desain ke dependecies Anda
Gunakan
TextInputEditText
bersama denganTextInputLayout
The
passwordToggleEnabled
atribut akan melakukan pekerjaan!Di tata letak root Anda jangan lupa untuk menambahkan
xmlns:app="http://schemas.android.com/apk/res-auto"
Anda dapat menyesuaikan sakelar kata sandi dengan menggunakan:
app:passwordToggleDrawable
- Dapat ditarik untuk digunakan sebagai ikon sakelar visibilitas input kata sandi.app:passwordToggleTint
- Ikon untuk digunakan untuk beralih visibilitas input kata sandi.app:passwordToggleTintMode
- Mode Blending digunakan untuk menerapkan warna latar belakang.Lebih detail dalam dokumentasi TextInputLayout .
Untuk AndroidX
Ganti
android.support.design.widget.TextInputLayout
dengancom.google.android.material.textfield.TextInputLayout
Ganti
android.support.design.widget.TextInputEditText
dengancom.google.android.material.textfield.TextInputEditText
sumber
android:text
atributTextInputEditText
. Anda selalu dapat mengangkat masalah di Google Issues Tracker untuk Androidapp:passwordToggleDrawable
(usang) atauapp:endIconDrawable
kemudian menggunakan drawable kustom seperti<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_eye_close" android:state_checked="true"/> <item android:drawable="@drawable/ic_eye_open"/> </selector>
saya pikir google harus memperbaiki perilaku ini. Diskusi yang bagusUntuk menunjukkan titik-titik alih-alih kata sandi, atur PasswordTransformationMethod:
tentu saja Anda dapat mengatur ini secara default di elemen edittext Anda di tata letak xml dengan
Untuk menampilkan kembali kata sandi yang dapat dibaca, masukkan nol sebagai metode transformasi:
sumber
android:password
sudah ditinggalkan sekarang, dan Anda harus menggunakanandroid:inputType
sebagai gantinya.editText.getSelectionStart()
daneditText.getSelectionEnd()
untuk menyimpan posisi kursor daneditText.setSelection(start, end)
untuk mengembalikannya.Memperlihatkan:
Untuk menyembunyikan:
Setelah masing-masing kursor di-reset, jadi:
sumber
Kamu bisa memakai
app:passwordToggleEnabled="true"
di sini adalah contoh yang diberikan di bawah ini
sumber
app:endIconMode="password_toggle"
.Gunakan kotak centang dan ubah jenis input yang sesuai.
sumber
...
...
sumber
Ini bekerja untuk saya. Ini pasti akan membantu Anda
sumber
Saya merasa saya ingin menjawab pertanyaan ini bahkan ada beberapa jawaban yang bagus,
menurut dokumentasi TransformationMethod melakukan misi kami
Perhatikan saya menggunakan pisau mentega, tetapi sama jika pengguna memeriksa kata sandi
sumber
Saya dapat menambahkan kode ShowPassword / HidePassword hanya dengan beberapa baris, mandiri dalam sebuah blok:
sumber
Saya memiliki masalah yang sama dan sangat mudah diimplementasikan.
Yang harus Anda lakukan adalah membungkus bidang EditText Anda dalam (com.google.android.material.textfield.TextInputLayout) dan dalam add itu (app: passwordToggleEnabled = "true").
Ini akan menunjukkan mata di bidang EditText dan ketika Anda mengkliknya kata sandi akan muncul dan menghilang ketika diklik lagi.
sumber
sumber
Dalam bentuk yang sangat sederhana:
Semoga ini bisa membantu.
sumber
Anda dapat MENUNJUKKAN / menyembunyikan kata sandi menggunakan kode di bawah ini:
KODE XML:
KODE JAWA:
sumber
Coba ini:
Pertama-tama tentukan bendera sebagai global seperti ini:
Dan mengatur pendengar untuk menangani ketuk pada acara dan menyembunyikan tombol kata sandi:
sumber
Coba https://github.com/maksim88/PasswordEditText proyek di github. Anda bahkan tidak perlu mengubah kode Java Anda menggunakannya. Ubah saja
EditText
beri tag ke
com.maksim88.passwordedittext.PasswordEditText
dalam file XML Anda.
sumber
tampilkan dan sembunyikan kata sandi Edit_Text dengan kotak centang
XML
kode java
sumber
Apakah Anda mencoba dengan setTransformationMethod? Itu diwarisi dari TextView dan ingin TransformationMethod sebagai parameter.
Anda dapat menemukan lebih banyak tentang TransformationMethods di sini .
Ini juga memiliki beberapa fitur keren, seperti penggantian karakter.
sumber
Apa yang saya lakukan adalah
Anda dapat melihat video ini untuk langkah-langkah dan penjelasan yang lebih rinci https://youtu.be/md3eVaRzdIM
Semoga bermanfaat :)
sumber
Ini solusi saya tanpa menggunakan metode TextInputEditText dan Transformation.
XML
Kode Java
sumber
Menurut sumber ini , jika Anda telah memigrasi proyek Anda ke AndroidX, maka Anda dapat menggantinya
compile "com.android.support:design:24.2.0"
dengan
implementation "com.google.android.material:material:1.0.0"
Maka yang harus Anda lakukan adalah meletakkan kode di bawah ini ke file tata letak Anda:
Informasi lebih lanjut tentang materi
TextInputLayout
dapat ditemukan di sini .Untuk sumber ini , disarankan untuk bermigrasi ke AndroidX dari Perpustakaan Dukungan Android:
sumber
Pada awalnya ini adalah layar yang dimuat dengan visibilitas aset vektor gambar
pada klik itu akan berubah ke visibilitas gambar ini mati
kode untuk sakelar kata sandi di atas (kode xml)
Kode Java untuk operasi tombol
sumber
Dalam XML lakukan seperti ini
sumber
Ekstensi Kotlin saya. tulis sekali pakai kemana-mana
Anda dapat menyimpan metode ini di file apa pun dan menggunakannya di mana saja menggunakannya seperti ini
di mana ivShowPassword diklik tampilan gambar (mata) dan etPassword adalah Editext
sumber
Solusi yang bagus. Atur tombol, lalu gunakan kode ini:
sumber
Tambahkan metode ini:
Panggilan itu akan beralih di antara negara jenis input (Anda dapat mengubah transformasi Single-Line ke favorit Anda). Contoh penggunaan:
sumber
sumber
sumber
sumber