Ok vì vậy, cuối cùng tôi đã quản lý để đặt "OnClickListener" của riêng mình thành các liên kết của TextView. Giải pháp của tôi là để sao chép Linkify
để dự án của tôi, tên nó CustomLinkify
và chỉ cần thay đổi phương pháp applyLink
của nó:
Từ:
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);
}
Để:
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);
}
đâu _onLinkClickListener
là một lĩnh vực mới, do tôi đặt trước khi sử dụng CustomLinkify
mới.
Tôi biết nó không phải là một giải pháp rất tao nhã và tôi thích google cho phép thiết lập một người nghe thông qua Linkify bản địa, nhưng đối với tôi, điều này là tốt hơn so với thực hiện của riêng tôi Spannable
logics (như đề xuất trong câu hỏi liên quan khác).
Tôi tin tưởng mã Linkify
và tôi đoán thỉnh thoảng tôi sẽ kiểm tra xem có bất kỳ thay đổi nào được thực hiện trên đó hay không, nếu có, tất nhiên tôi sẽ cập nhật CustomLinkify
với các thay đổi.
Hy vọng điều này sẽ giúp ai đó.
Xin chào, Cảm ơn vì giải pháp tôi đã cố gắng đối phó Linkify.java với dự án của tôi nhưng dường như nó đang sử dụng một số thư viện bên ngoài như libcore.util.EmptyArray và com.android.i18n không thể nhập vào dự án của tôi .Bạn có thể vui lòng đăng thêm thông tin về cách bạn quản lý để làm việc này không. Cảm ơn. – user465125