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 に答える