From cca287441f277a3049cc280ae0d1e622d99d22ef Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 08 六月 2021 18:40:31 +0800 Subject: [PATCH] 特价bug修复 --- app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java | 32 +++++++++++++++++++++++++++----- 1 files changed, 27 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java b/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java index 81d71f0..ea5863c 100644 --- a/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java +++ b/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java @@ -26,7 +26,7 @@ SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml); URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class); for (final URLSpan span : urls) { - setLinkClickable(clickableHtmlBuilder, span, context, color); + setLinkClickable(clickableHtmlBuilder, span, context, color, null); } return clickableHtmlBuilder; } @@ -35,7 +35,16 @@ SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml); URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class); for (final URLSpan span : urls) { - setLinkClickable(clickableHtmlBuilder, span, context, color); + setLinkClickable(clickableHtmlBuilder, span, context, color, null); + } + return clickableHtmlBuilder; + } + + public static CharSequence getClickableHtml(Spanned spannedHtml, Context context, Integer color, URLClickListener urlClickListener) { + SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml); + URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class); + for (final URLSpan span : urls) { + setLinkClickable(clickableHtmlBuilder, span, context, color, urlClickListener); } return clickableHtmlBuilder; } @@ -43,14 +52,18 @@ /** * 璁剧疆鐐瑰嚮瓒呴摼鎺ュ搴旂殑澶勭悊鍐呭 */ - private static void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder, final URLSpan urlSpan, final Context context, final Integer linkColor) { + private static void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder, final URLSpan urlSpan, final Context context, final Integer linkColor, final URLClickListener urlClickListener) { int start = clickableHtmlBuilder.getSpanStart(urlSpan); int end = clickableHtmlBuilder.getSpanEnd(urlSpan); int flags = clickableHtmlBuilder.getSpanFlags(urlSpan); - clickableHtmlBuilder.setSpan( new ClickableSpan() { + clickableHtmlBuilder.setSpan(new ClickableSpan() { public void onClick(View view) { - context.startActivity(new Intent(context, ShareBrowserActivity.class).putExtra("url", urlSpan.getURL())); + if (urlClickListener != null) { + urlClickListener.onClick(urlSpan.getURL()); + } else { + context.startActivity(new Intent(context, ShareBrowserActivity.class).putExtra("url", urlSpan.getURL())); + } } public void updateDrawState(TextPaint ds) { @@ -61,6 +74,15 @@ ds.clearShadowLayer(); } }, start, end, flags); + //闃叉鐐瑰嚮浜嬩欢涓嶅搷搴� + clickableHtmlBuilder.removeSpan(urlSpan); + } + + + public static interface URLClickListener { + + public void onClick(String url); + } } -- Gitblit v1.8.0