2017-05-19 8 views
1

私はリンクを含むいくつかのHTMLテキストを持つTextViewを持っています。 TextViewにスタイルを追加しましたが、リンクはリンクとして表示されません。Android:TextViewのインラインHTMLリンクをスタイリング

文字列:

<string name="strPrivacyPolicyAndContact">See our %1$s Privacy Policy %2$s or contact us for more information: [email protected]</string> 

TextViewのxml:

<TextView 
    android:id="@+id/privacyAndContact" 
    style="@style/NewFont_Label" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="8dp" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp" 
    android:gravity="left" 
    android:text="@string/strPrivacyPolicyAndContact" /> 

NewFont_Labelスタイル:

<style name="NewFont_Label"> 
    <item name="android:textSize">12sp</item> 
    <item name="variant">medium</item> 
    <item name="android:textColor">@color/label</item> 
    <item name="android:textAllCaps">true</item> 
    <item name="android:letterSpacing">0.02</item> 
</style> 

コード:

private static final String PRIVACY_HREF = "<a href=\"http://www.beatrixkiddo.com\privacy\">"; 
private static final String END_TAG = "</a>"; 

privacyAndContact = (TextView) view.findViewById(R.id.privacyAndContact); 
privacyAndContact.setText(Html.fromHtml(getString(R.string.strPrivacyPolicyAndContact, PRIVACY_HREF, END_TAG))); 
スタイルを追加した後

enter image description here

enter image description here

質問:

ノー結果とすべての可能なHTMLタグを追加しようとしたが、スタイルを追加する前に


下線や色でリンクのスタイルを設定するにはどうすればよいですか?

更新

私はSpannableStringを試してみたが、それの影響はTextViewに上styleを印加することによって、破棄されている:

SpannableString privacy = new SpannableString(getString(R.string.strPrivacyPolicyAndContact)); 
privacy.setSpan(new URLSpan("http://www.beatrixkiddo.com/privacy"), 13, 26, 0); 
privacy.setSpan(new UnderlineSpan(), 13, 26, 0); 
privacy.setSpan(new ForegroundColorSpan(Color.RED), 13, 26, 0); 
privacyAndContact.setText(privacy); 

のでspannableは、このケースでは動作しません。どちらか。

+3

代わりにspannableStringを使用してください。 –

+0

親文字スタイル – Qamar

+0

FYI 'Html.fromHtml(string)'は 'Nougat'で廃止されました。 'Html.fromHtml(string、int)'の他のメソッドを使用して、以下のデバイスのフォールバックメソッドを使用してください。 –

答えて

1

この2行のみを変更してください。

private static final String PRIVACY_HREF = "<u><b><font color='green' ><a href='http://www.beatrixkiddo.com/privacy' >Privacy Policy"; 
private static final String END_TAG = "</a></font></b></u>"; 
textView.setText(Html.fromHtml(PRIVACY_HREF+END_TAG)); 
+0

TextViewは非推奨のhtmlタグをサポートしていません。それを試してみました。 – Ambran

+0

@Ambran、textviewは基本的なhtml要素をサポートしていますが、あなたはhtml + java.pleaseのコードをどのようにコードするのかわかりません。 – Vasant

+0

添付された 'style'は、他のすべての適用されたスタイルを打ち消します。結果もなくSpannableStringで試しました。 – Ambran

関連する問題