package com.example.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.R;
public class ExampleFragment extends Fragment
{
private View mRootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
mRootView = inflater.inflate(R.layout.fragment_example, container, false);
return mRootView;
}
private void bindData()
{
// reference
TextView descriptionTextView = (TextView) mRootView.findViewById(R.id.fragment_example_description);
// color highlight
String colorHighlight = toHtmlColor(R.color.global_text_secondary);
// remove html tags
String nameWithoutHtml = removeHtmlTags("<u>Petr</u>", true);
// text
StringBuilder builder = new StringBuilder();
builder.append("I am ");
builder.append("<b><font color='" + colorHighlight + "'>");
builder.append(nameWithoutHtml);
builder.append("</font></b>");
builder.append(" and I love <a href='http://android.com'>Android</a>!");
// set html text
// beware of this bug: https://code.google.com/p/android/issues/detail?id=35412, https://code.google.com/p/android/issues/detail?id=34913
descriptionTextView.setText(Html.fromHtml(builder.toString()), TextView.BufferType.SPANNABLE);
descriptionTextView.setMovementMethod(LinkMovementMethod.getInstance());
}
private String toHtmlColor(int colorResource)
{
return "#" + Integer.toHexString(ContextCompat.getColor(getActivity(), colorResource)).substring(2);
}
private String removeHtmlTags(String htmlText, boolean removeBreak)
{
String text = Html.fromHtml(htmlText).toString();
if(removeBreak) text = text.replace("\n", " ").replace("\r", "");
return text;
}
}