In meiner Anwendung habe ich einen, EditText
dessen Standardeingabetyp android:inputType="textPassword"
von deault eingestellt ist. Es hat eine CheckBox
auf ihr Recht, die , wenn sie aktiviert ist, ändert sich die Eingabetyp des EditText auf NORMAL KLARTEXT. Code dafür ist
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Mein Problem ist, wenn diese CheckBox deaktiviert ist, sollte sie den Eingabetyp wieder auf PASSWORD setzen. Ich habe es gemacht mit-
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Der Text in diesem Edittext ist jedoch weiterhin sichtbar. Und überraschenderweise wird beim Ändern der Ausrichtung der Eingabetyp automatisch auf PASSWORT gesetzt, und der darin enthaltene Text wird mit Aufzählungszeichen versehen (wie ein Kennwort angezeigt).
Wie kann man das erreichen?
android
passwords
android-edittext
Rajkiran
quelle
quelle
mailEdt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
. Funktioniert bei mir.Antworten:
Nur für die Leute, die das gleiche Problem haben. Fügen Sie diesem EditText einfach programmgesteuert ein zusätzliches Attribut hinzu, und schon sind Sie fertig.
Für numerisches Passwort (PIN).
Stellen Sie außerdem sicher, dass sich der Cursor am Ende des Textes im EditText befindet. Denn wenn Sie den Eingabetyp ändern, wird der Cursor automatisch auf den Startpunkt gesetzt. Daher schlage ich vor, den folgenden Code zu verwenden:
Bei Verwendung der Datenbindung können Sie den folgenden Code verwenden
Wenn Sie Kotlin verwenden,
quelle
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
editText.getSelectionStart()
undeditText.getSelectionEnd()
mitsetSelection(start, end)
zu verwenden, um dieses Problem zu vermeiden.Verwenden Sie diesen Code, um das Passwort in Text zu ändern und umgekehrt
Den vollständigen Beispielcode finden Sie unter http://www.codeproject.com/Tips/518641/Show-hide-password-in-a-edit-text-view-password-ty
quelle
Die obige Methode hat bei mir nicht wirklich funktioniert. Antwort unten funktioniert für 2.2 sdk.
InputType für einen EditText festlegen?
quelle
Ein weiteres einfaches Beispiel für die Verwendung von ImageView zum Umschalten der Sichtbarkeit mit weniger Code. Aufgrund der einzelnen Zuweisung von InputType benötigen wir nur den Gleichheitsoperator:
Ersetzen:
Mit:
Gibt das gleiche Ergebnis, aber kürzeres Wort.
quelle
quelle
Das hat bei mir funktioniert:
quelle
Ok Also nach stundenlangem Versuch endlich implementiert. Unten ist der Code ..
Erläuterungen: - Ich habe eine Schaltfläche mit Standardtext als Show. Nach dem Klicken auf das Ereignis wird überprüft, ob der Text der Schaltfläche angezeigt wird. Wenn es angezeigt wird, ändern Sie den Eingabetyp, passen Sie die Cursorposition an und setzen Sie neuen Text als darin ausgeblendet.
Wenn es ausgeblendet ist ... machen Sie es umgekehrt, dh verstecken Sie das Passwort, passen Sie den Cursor an und setzen Sie den Text wie gezeigt. Und das ist es. Es funktioniert wie ein Zauber.
quelle
Für Kotlin-Benutzer:
quelle
Verwenden Sie diesen Code, um das Passwort in Text zu ändern und umgekehrt. Dieser Code hat bei mir perfekt funktioniert. Versuche dies..
quelle
Dies ist der vollständige onClick-Handler für das Bild / die Schaltfläche zum Ein- / Ausblenden des Kennworts.
quelle
edtPassword.getSelectionStart()
.Die Funktion zum Umschalten der Kennwortsichtbarkeit wurde hinzugefügt, um die Bibliotheksversion 24.2.0 zu unterstützen, mit der Sie das Kennwort direkt von der umschalten können,
EditText
ohne dass ein erforderlich istCheckBox
.Sie können dies im Grunde tun, indem Sie zuerst Ihre Support-Bibliotheksversion auf 24.2.0 aktualisieren und dann ein
inputType
Kennwort für das festlegenTextInputEditText
. So geht's:Weitere Informationen zu der neuen Funktion finden Sie in der Entwicklerdokumentation für TextInputLayout .
quelle
Seit der Support Library v24.2.0. Sie können dies sehr einfach erreichen
Was Sie tun müssen, ist nur:
Fügen Sie die Designbibliothek Ihren Abhängigkeiten hinzu
Verwendung
TextInputEditText
in Verbindung mitTextInputLayout
passwordToggleEnabled
Durch das Attribut wird das Umschalten des Kennworts angezeigtVergessen 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 .
quelle
Meine Suche nach einer ähnlichen Lösung für Visual Studio / Xamarin führte mich zu diesem Thread. Nachfolgend sehen Sie, was bei mir mit Xamarin funktioniert hat. Beachten Sie, dass diese Implementierung
TYPE_TEXT_FLAG_NO_SUGGESTIONS
beim Umschalten zwischen den Modi das Flag beibehält .EditText et = FindViewById<EditText>(Resource.Id.ET);
So zeigen Sie Charaktere an:
et.InputType = Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagNoSuggestions;
So verstecken Sie Zeichen:
et.InputType = Android.Text.InputTypes.TextVariationPassword | Android.Text.InputTypes.ClassText;
So setzen Sie die Position auf Ende:
int position = et.Text.Length;
et.SetSelection(position, position);
quelle
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 ); }
ich diesen Code für Visual Studio / Xamarin?Einige dynamische Situationen
holder.edit_pin.setInputType(InputType.TYPE_CLASS_NUMBER);
funktionieren nicht, also nutzen Sie beide so besserHinweis: Dies ist geeignet, wenn Sie dynamische Steuerelemente wie Arrayaapter verwenden
quelle
Nachdem Sie
setInputType
ein Passwortfeld eingegeben haben, haben Sie ein Problem mit FONT.Hier ist meine Lösung für das Ein- / Ausblenden von Passwörtern ohne Schriftartproblem
Hinweis: Ich verwende
InputType.TYPE_TEXT_VARIATION_PASSWORD
anstelle vonInputType.TYPE_CLASS_TEXT
oder,HideReturnsTransformationMethod
weil die Tastatur sowohl Text als auch Zahlen anzeigen sollDEMO
quelle
Ich würde entfernen
android:inputType="textPassword"
aus Ihrem Layout . Aus diesem Grund wird beim Ändern der Ausrichtung wieder auf das Kennwort umgeschaltet. Denn jedes Mal, wenn sich die Ausrichtung ändert, wird die Ansicht neu erstellt.Versuchen Sie Folgendes für das erste Problem:
Entleeren Sie im Grunde den Text, bevor Sie den Eingabetyp ändern und ihn dann wieder hinzufügen.
quelle
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
sofort nach der Initialisierung zu setzen, aber leider!Vervollständigen Sie den Code, wenn Sie die Kennwortsichtbarkeit im Text zum Bearbeiten von Kennwörtern anwenden möchten.
Erstellen Sie ein Handle [Beliebiges Zeichen- oder Kontrollkästchen]
Klicken Sie auf oder auf Aktiviert / Deaktiviert und schreiben Sie Folgendes:
Vergessen Sie nicht, diese Zeile zu schreiben:
Der Cursor wird auf das Zeilenende zurückgesetzt.
quelle
Ich ändere den Eingabetyp in meinem Kontrollkästchen, also
OnCheckedChangeListener
mache ich Folgendes :Und es hat endlich funktioniert.
Scheint ein boolesches Problem mit
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
. Invertieren Sie das Flag und es sollte das Problem beheben.In deinem Fall:
quelle
Transformationsmethode verwenden:
Verstecken:
Zu sehen:
Das ist es.
quelle
Nur ein zusätzlicher Kommentar zur richtigen Antwort von @Rajkiran, möchten Sie vielleicht hinzufügen
in den NORMAL-Eingabestatus, damit sich die Benutzer nicht über den automatischen Vorschlag der Tastatur ärgern
quelle
final int [] count = {0};
quelle
Basierend auf den Antworten von neeraj t und Everton Fernandes Rosario habe ich in Kotlin geschrieben, wo
password
sich eine ID eines EditText in Ihrem Layout befindet.quelle