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