ホームページ >ウェブフロントエンド >htmlチュートリアル >Weibo コンテンツの表示を防ぐには、Html.fromHtml() を使用して、コンテンツが lines_html/css_WEB-ITnose をラップできない問題を解決します。

Weibo コンテンツの表示を防ぐには、Html.fromHtml() を使用して、コンテンツが lines_html/css_WEB-ITnose をラップできない問題を解決します。

WBOY
WBOYオリジナル
2016-06-24 11:38:191109ブラウズ

Html.fromHtml() を使用して、コンテンツをラップできない問題を解決し、Weibo コンテンツの表示効果を模倣します。

1. 達成される効果

以下の図に示すように、矢印で示された Weibo コンテンツ部分にはハイパーリンクが含まれており、ハイパーリンクをクリックした後、対応する WebView ページにジャンプする必要があります。 (画像を csdn にアップロードしようと何度も試みましたが成功しませんでした。解決してください。ご苦労様でした。)





html.fromhtml() を通じて取得されたデータは、改行文字
などを解析します。 . が対応する形で表示され、上図のような効果が現れます。次に 2 番目の問題を解決し、ジャンプ問題をクリックしてコードに直接移動します。

。 MyURLSpan に関しては、ハイパーリンクをクリックした後のカスタマイズされた操作クラスであり、インターフェイスのジャンプが実装されています。そこで、表示とジャンプを実装しました。


3. 発生した問題

上記のようにコーディングした後、テキストを折り返せないという問題が発生しました。たとえば、私のアプリケーションで改行を含む投稿を投稿しましたが、改行がありませんでした。投稿詳細ページを表示します。

分分分分 分分分

サーバーから返されたデータを表示すると、こんな感じです。 「これはテスト投稿です。n をラップできるかどうかをテストしたいのです。」 そこで、HTML が「n」を解析できない理由がわかりました。

解解解解


最も攻撃的な場所が来て、すべての「n」を「& lt; br & gt;」に変換すると、コードは次のようになり、問題は解決できます。


/** * 设置TextView中URL由内嵌浏览器打开 * @param context * @param textView*/public static void setOpenUrlByBrowser(Context context, TextView textView) {textView.setMovementMethod(LinkMovementMethod.getInstance());CharSequence text = textView.getText();if (text instanceof Spannable) {int end = text.length();Spannable sp = (Spannable) textView.getText();URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);SpannableStringBuilder style = new SpannableStringBuilder(text);style.clearSpans();for (URLSpan url : urls) {MyURLSpan myURLSpan = new MyURLSpan(context, url.getURL());style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}textView.setText(style);}}
6. まとめ


地球の皆さん、上記はこの小さな問題の解決策にすぎません。賢い人なら、他の問題を解決するために、コンテンツを解析して最大限に活用するでしょう。バレンタインデー、ハッピーバレンタインデーO(∩_∩)O笑〜




🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。