Gibt es eine clevere Möglichkeit, den Benutzer in einem Android EditText zwischen dem Verstecken und Anzeigen von Passwörtern wechseln zu lassen? Mit einer Reihe von PC-basierten Apps kann der Benutzer dies tun.
Sie können die Attribute einer Textansicht dynamisch ändern. Wenn Sie das XML-Attribut android:password
auf true setzen würden, würde die Ansicht Punkte anzeigen , wenn Sie es auf false setzen, wird der Text angezeigt.
Mit der Methode setTransformationMethod sollten Sie diese Attribute aus dem Code ändern können. (Haftungsausschluss: Ich habe nicht getestet, ob die Methode nach dem Anzeigen der Ansicht noch funktioniert. Wenn Sie Probleme damit haben, hinterlassen Sie mir einen Kommentar, den ich wissen muss.)
Der vollständige Beispielcode wäre
yourTextView.setTransformationMethod(new PasswordTransformationMethod());
um das Passwort zu verbergen. Um das Kennwort anzuzeigen, können Sie eine der vorhandenen Transformationsmethoden festlegen oder eine leere Transformationsmethode implementieren , die nichts mit dem Eingabetext tut.
yourTextView.setTransformationMethod(new DoNothingTransformation());
setTransformationMethod(null)
.Es ist wirklich einfach zu erreichen, da die Support Library v24.2.0.
Was Sie tun müssen, ist nur:
Fügen Sie die Designbibliothek Ihren Abhängigkeiten hinzu
Verwendung
TextInputEditText
in Verbindung mitTextInputLayout
Das
passwordToggleEnabled
Attribut erledigt den Job!Vergessen Sie nicht, in Ihrem Root-Layout hinzuzufügen
xmlns:app="http://schemas.android.com/apk/res-auto"
Sie können Ihr Passwort umschalten, indem Sie Folgendes verwenden:
app:passwordToggleDrawable
- Zeichnbar, um als Symbol für die Sichtbarkeit der Passworteingabe verwendet zu werden.app:passwordToggleTint
- Symbol zum Umschalten der Sichtbarkeit der Passworteingabe.app:passwordToggleTintMode
- Mischmodus zum Anwenden der Hintergrundfarbe.Weitere Details finden Sie in der TextInputLayout-Dokumentation .
Für AndroidX
Ersetzen
android.support.design.widget.TextInputLayout
durchcom.google.android.material.textfield.TextInputLayout
Ersetzen
android.support.design.widget.TextInputEditText
durchcom.google.android.material.textfield.TextInputEditText
quelle
android:text
Attribut aufTextInputEditText
. Sie können jederzeit ein Problem auf Google Issues Tracker für Androidapp:passwordToggleDrawable
(veraltet) umkehren oderapp:endIconDrawable
dann eine benutzerdefinierte Zeichenfunktion verwenden, wie<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>
ich denke, dass Google dieses Verhalten beheben sollte. Gute DiskussionUm die Punkte anstelle des Passworts anzuzeigen, legen Sie die PasswordTransformationMethod fest:
Natürlich können Sie dies standardmäßig in Ihrem edittext-Element im XML-Layout mit festlegen
Um das lesbare Passwort erneut anzuzeigen, übergeben Sie einfach null als Transformationsmethode:
quelle
android:password
ist jetzt veraltet, und Sie solltenandroid:inputType
stattdessen verwenden.editText.getSelectionStart()
undeditText.getSelectionEnd()
zum Speichern undeditText.setSelection(start, end)
Wiederherstellen der Cursorposition .Zeigen:
Verstecken:
Nach jedem dieser Schritte wird der Cursor zurückgesetzt, also:
quelle
Sie können verwenden
app:passwordToggleEnabled="true"
Hier ist ein Beispiel unten angegeben
quelle
app:endIconMode="password_toggle"
.Verwenden Sie das Kontrollkästchen und ändern Sie den Eingabetyp entsprechend.
quelle
...
...
quelle
Es ist Arbeit für mich. Dies wird Ihnen definitiv helfen
quelle
Ich habe das Gefühl, ich möchte diese Frage auch dort beantworten, einige gute Antworten,
laut Dokumentation TransformationMethod erfüllen unsere Mission
Beachten Sie, dass ich ein Buttermesser verwende, aber es ist dasselbe, wenn der Benutzer das Kennwort anzeigen aktiviert
quelle
Ich kann den ShowPassword / HidePassword-Code mit nur wenigen Zeilen hinzufügen, die in einem Block enthalten sind:
quelle
Ich hatte das gleiche Problem und es ist sehr einfach zu implementieren.
Alles, was Sie tun müssen, ist, Ihr EditText-Feld in ein (com.google.android.material.textfield.TextInputLayout) und in dieses Add (app: passwordToggleEnabled = "true") zu verpacken.
Dies zeigt das Auge im EditText-Feld und wenn Sie darauf klicken, wird das Passwort angezeigt und verschwindet, wenn Sie erneut darauf klicken.
quelle
quelle
In sehr einfacher Form:
Ich hoffe es hilft.
quelle
Sie können das Passwort mit dem folgenden Code ein- / ausblenden:
XML-CODE:
JAVA CODE:
quelle
Versuche dies:
Definieren Sie zunächst ein Flag wie folgt als global:
Und stellen Sie den Listener so ein, dass er auf die Schaltfläche zum Anzeigen und Ausblenden des Passworts tippt:
quelle
Probieren Sie das https://github.com/maksim88/PasswordEditText-Projekt bei github aus. Sie müssen Ihren Java-Code nicht einmal damit ändern. Nur ändern
Text bearbeiten
Tag zu
com.maksim88.passwordedittext.PasswordEditText
in Ihrer XML-Datei.
quelle
Passwort ein- und ausblenden Edit_Text mit Kontrollkästchen
XML
Java-Code
quelle
Haben Sie es mit setTransformationMethod versucht? Es wurde von TextView geerbt und möchte eine Transformationsmethode als Parameter.
Weitere Informationen zu TransformationMethods finden Sie hier .
Es hat auch einige coole Funktionen, wie das Ersetzen von Zeichen.
quelle
Was ich getan habe war zu
In diesem Video finden Sie detailliertere Schritte und Erklärungen unter https://youtu.be/md3eVaRzdIM
Ich hoffe es hilft :)
quelle
Hier ist meine Lösung ohne Verwendung der TextInputEditText- und Transformationsmethode.
XML
Java Code
quelle
Laut dieser Quelle können Sie Ihr Projekt ersetzen, wenn Sie es auf AndroidX migriert haben
compile "com.android.support:design:24.2.0"
mit
implementation "com.google.android.material:material:1.0.0"
Dann müssen Sie nur noch den folgenden Code in Ihre Layoutdatei einfügen:
Weitere Informationen zum Material
TextInputLayout
finden Sie hier .Für diese Quelle wird empfohlen, von der Android Support Library auf AndroidX zu migrieren:
quelle
Dies ist zunächst der Bildschirm, auf dem die Sichtbarkeit eines Bildvektor-Assets geladen ist
Beim Klicken wird die Bildsichtbarkeit deaktiviert
Code für den obigen Passwortschalter (XML-Code)
Java-Code für die Tastenbedienung
quelle
In XML gefällt das
quelle
Meine Kotlin-Erweiterung. einmal schreiben überall verwenden
Sie können diese Methode in jeder Datei behalten und überall verwenden. Verwenden Sie sie so
Dabei wird auf ivShowPassword geklickt. Bildansicht (Auge) und etPassword auf Editext
quelle
Eine gute Lösung. Richten Sie eine Schaltfläche ein und verwenden Sie diesen Code:
quelle
Fügen Sie diese Methode hinzu:
Wenn Sie es aufrufen, wird zwischen dem Status des Eingabetyps umgeschaltet (Sie können die einzeilige Umwandlung in Ihren Favoriten ändern). Anwendungsbeispiel:
quelle
quelle
quelle
quelle