如果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());
}
}
}