Перехватить ссылку LinkMovementMethod с помощью диалога Да / Нет
У меня есть стандарт LinkMovementMethod
установлено в моем TextView
подтолкнуть веб-активность какого-либо рода, когда пользователь касается ссылки. Однако я хочу создать диалоговое окно "Хотите ли вы увидеть ссылку", а не перенаправлять пользователя прямо на веб-страницу? Я пытался переопределить сенсорные методы, но все становится немного запутанным. Небольшая помощь?
1 ответ
Вы можете сделать это двумя способами:
- Создание пользовательских диапазонов: более сложный, но вы можете создать более персонализированный текст, состоящий из кликабельных частей (или жирного шрифта, другого цвета и т. Д.). Чтобы узнать больше, проверьте ClickableSpan и SpannableStringBuilder
- простираться
LinkMovementMethod
принять пользовательский щелчок слушателя
На мой взгляд, второе решение лучше в базовых случаях, как у вас. Вот как вы можете это сделать:
- Скопируйте этот класс Java: InternalLinkMovementMethod в ваш проект
- Добавьте в этот пользовательский метод перемещения ссылок вашего TextView, предоставив прослушиватель кликов:
OnLinkClickedListener clickListener = new OnLinkClickedListener() {
@Override
public boolean onLinkClicked(String linkText) {
// here you can handle your click, eg show the dialog
// `linkText` is the text being clicked (the link)
// return true if handled, false otherwise
}
}
yourTextView.setMovementMethod(new InternalLinkMovementMethod(clickListener));