12

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

4

2 回答 2

26

简单版:

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 的位置。

于 2010-11-02T07:06:20.460 回答
1

最好和安全的方法是使用TextWatcher

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
                int cursorIndex = start + 1;
        }
于 2013-02-22T17:44:49.580 回答