From 399ac289f80b7a40aa4210341db6b447cacdcf14 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 09 八月 2022 17:42:33 +0800 Subject: [PATCH] 广告升级,隐私政策整改 --- app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 8 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 69bbf2f..e97557e 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 @@ -21,12 +21,40 @@ * @param context * @return */ - public static CharSequence getClickableHtml(String html, Context context,Integer color) { + public static CharSequence getClickableHtml(String html, Context context, Integer color) { Spanned spannedHtml = Html.fromHtml(html); 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(String html, Context context, Integer color, URLClickListener urlClickListener) { + Spanned spannedHtml = Html.fromHtml(html); + 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; + } + + public static CharSequence getClickableHtml(Spanned spannedHtml, Context context, Integer color) { + SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml); + URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class); + for (final URLSpan span : urls) { + 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; } @@ -34,25 +62,37 @@ /** * 璁剧疆鐐瑰嚮瓒呴摼鎺ュ搴旂殑澶勭悊鍐呭 */ - 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); - ClickableSpan clickableSpan = 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) { if (linkColor != null) ds.setColor(linkColor); -// //璁剧疆鏄惁瑕佷笅鍒掔嚎 + //璁剧疆鏄惁瑕佷笅鍒掔嚎 ds.setUnderlineText(false); ds.clearShadowLayer(); } - }; - clickableHtmlBuilder.setSpan(clickableSpan, start, end, flags); + }, start, end, flags); + //闃叉鐐瑰嚮浜嬩欢涓嶅搷搴� + clickableHtmlBuilder.removeSpan(urlSpan); + } + + + public static interface URLClickListener { + + public void onClick(String url); + } } -- Gitblit v1.8.0