2017-05-05 2 views
0

Ich habe eine benutzerdefinierte Edittext, die von AppCompatEditText erweitert wird und es zeigt Datum Text wie "10.02.2012 10:40" Wenn Benutzer klickt einmal über einen Teil der Texte, sollte der Teil automatisch ausgewählt werden.dynamisch wählen getrennten Text in EditText

Zum Beispiel:

enter image description here enter image description here

, es zu tun, in meiner benutzerdefinierten EditText, overrode ich onSelectonChange

@Override 
    protected void onSelectionChanged(int selStart, int selEnd) { 

     if (isFocused() && isCursorVisible() && isPressed()) { 
      int[] aFoo = findPartOfText(selStart, selEnd); 
      selStart = aFoo [0]; 
      selEnd = aFoo [1]; 
     } 

     super.onSelectionChanged(selStart, selEnd); 

    } 

Es ändert nichts. Ich habe es auch versucht:

@Override 
     protected void onSelectionChanged(int selStart, int selEnd) { 
      //Select first 3 characters 
      super.onSelectionChanged(0, 2); 

     } 

Ergebnis ist das gleiche. Es wählt auch nicht die ersten 3 Zeichen aus.

+0

Dies kann mit einem onClickListener oder OnFocusChangedListener erreicht werden. Hier ist der Link [link] (http://stackoverflow.com/questions/9128297/how-to-dynamically-select-text-from-edittext-onclicklistener) –

Antwort

0

Versuchen Sie EditText.setSelection (int start, int Ende). Wenn onSelectionChanged aufgerufen wird, überprüfen Sie die Cursorposition oder -auswahl und rufen Sie setSelection auf, um sie zu ändern.

+0

setSelection ruft bereits onSelectionChanged-Methode auf. So macht das Aufrufen der setSelection-Methode In onSelectionChanged keinen Sinn. Hinweis: Ich habe es auch schon mal versucht. – ziLk

+0

In onSelectionChanged, überprüfen Sie den Auswahlbereich. Rufen Sie setSelection nur dann auf, wenn der Bereich nicht Ihren Vorstellungen entspricht. – jarly