Перехватить ссылку LinkMovementMethod с помощью диалога Да / Нет

У меня есть стандарт LinkMovementMethod установлено в моем TextView подтолкнуть веб-активность какого-либо рода, когда пользователь касается ссылки. Однако я хочу создать диалоговое окно "Хотите ли вы увидеть ссылку", а не перенаправлять пользователя прямо на веб-страницу? Я пытался переопределить сенсорные методы, но все становится немного запутанным. Небольшая помощь?

1 ответ

Вы можете сделать это двумя способами:

  • Создание пользовательских диапазонов: более сложный, но вы можете создать более персонализированный текст, состоящий из кликабельных частей (или жирного шрифта, другого цвета и т. Д.). Чтобы узнать больше, проверьте ClickableSpan и SpannableStringBuilder
  • простиратьсяLinkMovementMethod принять пользовательский щелчок слушателя

На мой взгляд, второе решение лучше в базовых случаях, как у вас. Вот как вы можете это сделать:

  1. Скопируйте этот класс Java: InternalLinkMovementMethod в ваш проект
  2. Добавьте в этот пользовательский метод перемещения ссылок вашего 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));
Другие вопросы по тегам