EditText的光标位置

时间:2010-08-10 16:19:37

标签: android android-ui

假设用户已将一些文本写入 EditText ,然后触摸屏幕上的其他位置,这会导致光标位置发生变化:如何确定新的光标位置?

2 个答案:

答案 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;
        }