2016-09-20 3 views
3

Immer, wenn ich die EditText berühren, sollten Cursor auf end.Even sein, wenn der editText bereits einen Text mit und es sollte links Auszeichnungen nicht zulassen, dassWie Sie den Cursor am Ende in EditText setzen

editTextView.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 

        editTextView.onTouchEvent(event); 

        if(!textFocus) { 
         editTextView.setSelection(editTextView.getText().length()); 
         textFocus = true; 
        } 

        return true; 
       } 
      }); 

      editTextView.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
       @Override 
       public void onFocusChange(View v, boolean hasFocus) { 
        textFocus = false; 
       } 
      }); 

Antwort

2

Sie bewegen kann EditText erweitern und onSelectionChanged-Funktion überschreiben.

Zum Beispiel:

public class CustomEditText extends EditText { 
     public CustomEditText(Context context, AttributeSet attrs) { 
      super(context, attrs); 
     } 

     public CustomEditText(Context context) { 
      super(context); 
     } 

     public CustomEditText(Context context, AttributeSet attrs, int defStyle) { 
      super(context, attrs, defStyle); 
     } 

     @Override 
     protected void onSelectionChanged(int selStart, int selEnd) { 
       this.setSelection(this.getText().length()); 
     } 
    } 

In XML sollten Sie dann yourpackagename.CustomEditText anstelle von EditText.

0

Probieren Sie eine unter Code-Schnipsel, soll es

arbeitet
a) 

    editText.setText("Your text"); 
    editText.setSelection(editText.getText().length()); 
b) 

    editText.setText("");  
    editText.append("Your text"); 

c) 

    editText.append(""); 
0

Eigentlich gibt es keine solche Methode, dies direkt zu tun, aber auf kann dies tun,

editText.setText(editText.getText().toString); 

auf Fokus ändern oder wo wann immer du willst.

5

Das ist mir geholfen. Immer, wenn ich den Editiertext berühre, ist der Cursor am Ende.

editTextView.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 
        editTextView.onTouchEvent(event); 
        editTextView.setSelection(editTextView.getText().length()); 
        return true; 
       } 
      }); 
Verwandte Themen