2017-08-20 5 views
2

J'essaie d'utiliser EditText avec le type d'entrée textPassword. J'ai fait face à une situation dans laquelle tous les caractères entrant dans le domaine ont été sélectionnés en tapant deux fois dans la version Android 5 et 4.4 tandis que cette fonctionnalité ne fonctionne pas sur Android version 6. Pourriez-vous s'il vous plaît m'aider à avoir cette fonctionnalité dans toutes les versions Android ?Android EditText avec le type d'entrée de mot de passe de texte ne sélectionne pas tous les caractères en tapant deux fois

Ceci est mon fichier xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 


    <EditText 
     android:hint="Text Password Input Type" 
     android:inputType="textPassword" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

Ceci est le résultat:

enter image description here

+0

Je suppose que ce problème est avec le simulateur seulement et pas sur le vrai appareil – VVB

+0

@VVB Cette fonctionnalité a été vérifiée sur Samsung Note 4 avec Lollipop et Nexus 5 avec la version Android de guimauve. Le même résultat s'est produit. – Nava

Répondre

0

L'algorithme général serait:

private long timeLastClicked; 
private static final TIME_DOUBLE_CLICK_MS = 1000; 
private EditText passwordField; //should put the result of findViewById in here 

... 

myEditText.setOnClickListener(new OnClickListener() { 
    public void onClick(View view) { 
     long time = System.currentTimeMillis(); 
     if(time - timeLastClicked < TIME_DOUBLE_CLICK_MS) { 
      passwordField.setSelection(0,passwordField.getText().length()); 
     } 
     timeLastClicked = time; 
}); 

Qu'est-ce does- il définit un écouteur de clic. Lorsque vous voyez un clic, vous vérifiez si vous avez déjà vu un autre clic dans la seconde précédente. Si oui, vous hight le texte. Sinon, vous ne le faites pas. De toute façon, vous économisez le temps de ce clic pour pouvoir le comparer la fois suivante.

+0

Avez-vous testé cette solution? n'a pas fonctionné pour moi. Il semble que le problème se rapporte à la méthode setSelection(). Parce que l'algorithme est correct. – Nava