Dalam aplikasi saya, saya memiliki EditText
tipe input default yang diatur android:inputType="textPassword"
oleh deault. Memiliki CheckBox
hak di sebelah kanannya, yaitu ketika dicentang, mengubah tipe input EditText itu menjadi NORMAL PLAIN TEXT. Kode untuk itu
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Masalah saya adalah, ketika kotak centang itu tidak dicentang lagi harus mengatur jenis input ke PASSWORD. Saya sudah melakukannya dengan-
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Tapi, teks di dalam edittext itu masih terlihat. Dan yang mengejutkan, ketika saya mengubah orienatation, secara otomatis mengatur tipe input ke PASSWORD dan teks di dalamnya diberi bullet (ditampilkan seperti kata sandi).
Adakah cara untuk mencapai ini?
android
passwords
android-edittext
Rajkiran
sumber
sumber
mailEdt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
. Bekerja untukku.Jawaban:
Hanya untuk orang-orang yang mengalami masalah yang sama. Cukup tambahkan atribut tambahan ke EditText itu secara terprogram dan Anda selesai.
Untuk kata sandi angka (pin).
Juga, pastikan kursor berada di akhir teks dalam EditText. Karena, ketika Anda mengubah jenis input, kursor akan secara otomatis diatur ke titik awal. Jadi saya sarankan untuk menggunakan kode berikut:
Saat menggunakan Penjilidan Data, Anda dapat menggunakan kode berikut
Jika menggunakan Kotlin,
sumber
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
editText.getSelectionStart()
daneditText.getSelectionEnd()
dengansetSelection(start, end)
untuk menghindari masalah ini.gunakan kode ini untuk mengubah kata sandi menjadi teks dan sebaliknya
untuk kode contoh lengkap, rujuk http://www.codeproject.com/Tips/518641/Tampilkan-hid-pasword-in-a-edit-teks-view-pasword-ty
sumber
Metode di atas tidak berhasil untuk saya. Jawaban di bawah ini berfungsi untuk 2.2 sdk.
Tetapkan inputType untuk EditText?
sumber
Contoh sederhana lain menggunakan ImageView untuk mengaktifkan visibilitas dengan kode lebih sedikit, karena inputType tunggal menetapkan kita hanya perlu operator kesetaraan:
Mengganti:
Dengan:
Akan memberikan hasil yang sama tetapi kata yang lebih pendek.
sumber
sumber
Ini bekerja untuk saya:
sumber
Ok Jadi setelah berjam-jam berusaha akhirnya menerapkannya. Di bawah ini adalah kode ..
Penjelasan: - Saya memiliki tombol dengan teks default sebagai show. Setelah acara onclick di atasnya memeriksa apakah teks tombol ditampilkan. Jika ditampilkan, maka ubah jenis input, sesuaikan posisi kursor dan atur teks baru sebagai sembunyikan di dalamnya.
Ketika itu disembunyikan ... melakukan kebalikan yaitu menyembunyikan kata sandi, menyesuaikan kursor dan mengatur teks sebagai acara. Dan itu saja. Ini bekerja seperti pesona.
sumber
Untuk pengguna kotlin:
sumber
Gunakan kode ini untuk mengubah kata sandi menjadi teks dan sebaliknya. Kode ini sangat cocok untuk saya. Coba ini..
sumber
Ini adalah penangan onClick penuh untuk Gambar / Tombol untuk menampilkan / menyembunyikan kata sandi.
sumber
edtPassword.getSelectionStart()
.Fitur Password Visibility Toggle telah ditambahkan untuk mendukung perpustakaan versi 24.2.0 memungkinkan Anda untuk mengganti kata sandi langsung dari yang
EditText
tanpa perlu aCheckBox
.Anda dapat membuatnya bekerja pada dasarnya dengan terlebih dahulu memperbarui versi perpustakaan dukungan Anda ke 24.2.0 dan kemudian mengatur
inputType
kata sandi diTextInputEditText
. Berikut cara melakukannya:Anda dapat memperoleh informasi lebih lanjut tentang fitur baru pada dokumentasi pengembang untuk TextInputLayout .
sumber
Karena Perpustakaan Dukungan v24.2.0. Anda dapat mencapai ini dengan sangat mudah
Yang perlu Anda lakukan hanyalah:
Tambahkan pustaka desain ke dependecies Anda
Gunakan
TextInputEditText
bersama denganTextInputLayout
passwordToggleEnabled
atribut akan membuat sakelar kata sandi munculDi 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 .
sumber
Pencarian saya untuk solusi serupa untuk Visual Studio / Xamarin membawa saya ke utas ini. Di bawah ini yang berhasil bagi saya dengan Xamarin. Perhatikan bahwa implementasi ini mempertahankan
TYPE_TEXT_FLAG_NO_SUGGESTIONS
flag saat beralih antar mode.EditText et = FindViewById<EditText>(Resource.Id.ET);
Untuk menampilkan karakter:
et.InputType = Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagNoSuggestions;
Untuk menyembunyikan karakter:
et.InputType = Android.Text.InputTypes.TextVariationPassword | Android.Text.InputTypes.ClassText;
Untuk mengatur posisi ke ujung:
int position = et.Text.Length;
et.SetSelection(position, position);
sumber
if (edittext.getInputType() == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD )){ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD ); }else{ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD ); }
untuk Visual Studio / Xamarin ..?beberapa situasi dinamis
holder.edit_pin.setInputType(InputType.TYPE_CLASS_NUMBER);
tidak akan berfungsi jadi lebih baik gunakan keduanya seperti ituCatatan: ini cocok untuk saat Anda menggunakan kontrol dinamis seperti menggunakan arrayaapter
sumber
Setelah Anda
setInputType
untuk bidang kata sandi, Anda akan memiliki masalah dengan FONT.Ini adalah solusi saya untuk menampilkan / menyembunyikan kata sandi tanpa masalah font
Catatan: Saya menggunakan
InputType.TYPE_TEXT_VARIATION_PASSWORD
bukanInputType.TYPE_CLASS_TEXT
atauHideReturnsTransformationMethod
karena saya ingin keyboard menampilkan teks dan angkaDEMO
sumber
Saya akan menghapus
android:inputType="textPassword"
dari tata letak Anda. Itu sebabnya ia beralih kembali ke kata sandi ketika orientasi berubah. Karena setiap kali orientasi mengubah tampilan sedang dibuat ulang.Adapun masalah pertama coba ini:
pada dasarnya mengosongkan teks sebelum Anda mengubah jenis input dan kemudian menambahkannya kembali.
sumber
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
segera setelah inisialisasi, tetapi sayangnya!Kode lengkap saat Anda ingin menerapkan visibilitas kata sandi dalam teks edit kata sandi.
Buat pegangan [Drawable or Checkbox]
di klik atau di Centang / Hapus centang tulis ini:
Jangan lupa untuk menulis baris ini:
Ini mengatur ulang kursor ke akhir baris.
sumber
Saya mengubah jenis input pada kotak centang saya, jadi saya
OnCheckedChangeListener
lakukan:Dan akhirnya berhasil.
Sepertinya masalah boolean dengan
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
. Balikkan bendera dan itu harus memperbaiki masalah.Dalam kasus Anda:
sumber
Gunakan metode Transformasi:
Menyembunyikan:
Untuk Terlihat:
Itu dia.
sumber
Hanya komentar tambahan tentang jawaban yang benar yang diberikan oleh @Rajkiran, Anda mungkin ingin menambahkan
ke status input NORMAL sehingga pengguna tidak akan terganggu oleh saran otomatis keyboard
sumber
int akhir [] hitung = {0};
sumber
Berdasarkan jawaban neeraj t dan Everton Fernandes Rosario yang saya tulis di Kotlin, di mana
password
ada id dari EditText di tata letak Anda.sumber