Хорошо, поэтому мне удалось установить собственный «OnClickListener» для ссылок TextView. Мое решение было скопировать Linkify
в мой проект, назовите его CustomLinkify
и просто изменить свой applyLink
метод:
От:
private static final void applyLink(String url, int start, int end, Spannable text)
{
URLSpan span = new URLSpan(url);
text.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
To:
private static final void applyLink(final String url, int start, int end, Spannable text)
{
URLSpan span = new URLSpan(url)
{
@Override
public void onClick(View widget)
{
_onLinkClickListener.onLinkClicked(url);
}
};
text.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
Где _onLinkClickListener
новое поле, установленный мной перед использованием нового CustomLinkify
.
Я знаю, что это не очень изящное решение, и я предпочитаю google, чтобы разрешить прослушивание через родной Linkify, но для меня это лучше, чем реализация моих собственных логик Spannable
(как предложено в других связанных вопросах).
Я доверяю код Linkify
, и я думаю, что время от времени проверю, были ли внесены какие-либо изменения на него, если это так, я обязательно обновлю CustomLinkify
с изменениями.
Надеюсь, это поможет кому-то.
Привет, Спасибо за решение, я пытался копировать Linkify.java в мой проект, но кажется, что он использует некоторые внешние библиотеки, такие как libcore.util.EmptyArray и com.android.i18n, которые нельзя импортировать в мой проект ,Можете ли вы разместить дополнительную информацию о том, как вам удалось это сделать. Благодарю. – user465125