因为项目需要,需要实时监听光标的位置变化,网上提出的用TextWatcher和onTouchListener中调用contentText.getSelectionStart()都是获取的上一次位置。
只要重写onSelectionChanged就可以获取最新的光标位置了。
public class NoteContentEditText extends EditText { public NoteContentEditText(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); } @Override protected void onSelectionChanged(int selStart, int selEnd) { // TODO Auto-generated method stub super.onSelectionChanged(selStart, selEnd); Logg.D("onSelectionChanged selStart "+selStart+" selEnd "+selEnd); } }