假设用户已将一些文本写入 EditText ,然后触摸屏幕上的其他位置,这会导致光标位置发生变化:如何确定新的光标位置?
答案 0 :(得分:25)
简单版本:
myEditText.getSelectionStart();
如果您想对活动做出反应,可以尝试
myEditText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// view is myEditText here
}
});
event
允许区分按下和释放。
EditText
也有setOnClickListener()
,值得一看。
编辑:
我忘了提及onSelectionChanged(int selStart, int selEnd)
,如果位置发生变化,selEnd等于selStart。
答案 1 :(得分:2)
最好和最安全的方法是使用 TextWatcher
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int cursorIndex = start + 1;
}