#android
Вопрос:
У меня есть текстовое представление с абзацем текста. Я пытаюсь получить точку (возможно, индекс), в которой пользователь коснулся/нажал на текст. Что-то вроде:
TextView textView = (TextView)this.findViewById(R.id.textView);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView txt = (TextView)v;
// magic here...
index = ...
}
});
Идея состоит в том, чтобы затем программно выделить определенную часть текста (что я уже могу сделать). Мне нужно встроить логику, чтобы был выбран очень конкретный вариант, чтобы пользователь не беспокоился о том, где начинается и где заканчивается.
Комментарии:
1. Вы пробовали использовать
mTextView.getSelectionStart()
?
Ответ №1:
Для этого вы можете реализовать OnTouchListener. Вот пример кода:
txt.setOnTouchListener(new View.OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int x = (int)event.getX();
int y = (int)event.getY();
// Do stuff with x and y
return false;
}
});
Комментарии:
1. Это кажется немного громоздким, учитывая, что они могут прокручиваться, размеры шрифтов и т. Д. Я подумывал о том, чтобы сделать что-то подобное, но подумал, что может быть лучший метод.