将Edittext光标移动到文本最后

如果EditText预先有内容,光标自然会在文字的末尾,但是如果预先内容为空,然后设置好内容,这种情况下光标自然会在文字的开头,通过以下方法可以让光标位于末尾:

1.

et.setText(content);//设置EditText控件的内容
et.setSelection(content.length());//将光标移至文字末尾
2.
editText.setText("content");
editText.requestFocus();  //这句是关键
3.通过重写EditText,重写onSelectionChanged
public class LastInputEditText extends EditText {  
  
    public LastInputEditText(Context context, AttributeSet attrs, int defStyle) {  
        super(context, attrs, defStyle);  
    }  
  
    public LastInputEditText(Context context, AttributeSet attrs) {  
        super(context, attrs);  
    }  
  
    public LastInputEditText(Context context) {  
        super(context);  
    }  
      
    @Override  
    protected void onSelectionChanged(int selStart, int selEnd) {  
        super.onSelectionChanged(selStart, selEnd);  
        //使光标始终在最后面  
        if(selStart==selEnd){//防止不能多选  
            setSelection(getText().length());  
        }  
          
    }  
}  

你可能感兴趣的:(将Edittext光标移动到文本最后)