Dynamically creating links in TextViews
android, hyperlink, textview
Solution
If I understand the question correctly, you could try using String.format():
String dynamicUrl = "http://www.google.com"; // or whatever you want, it's dynamic
String linkedText = "<b>text3:</b> Text with a " +
String.format("<a href=\"%s\">link</a> ", dynamicUrl) +
"created in the Java source code using HTML.";
textView.setText(Html.fromHtml(linkedText));
textView.setMovementMethod(LinkMovementMethod.getInstance());
Edit: You also need to remove `android:autoLink="web"` from the XML for this to work.
Problem
I need to be able to create a link for a TextView in an app, but the actual URL to which the link will point needs to be added dynamically. Through research here on SO, I found the following code: ``` textView.setText(Html.fromHtml( "<b>text3:</b> Text with a " + "<a href=\"http://www.google.com\">link</a> " + "created in the Java source code using HTML.")); textView.setMovementMethod(LinkMovementMethod.getInstance()); ``` This allegedly will set a link in the TextView as it would in HTML. This is exactly what I need to do, but I need the URL to be dynamic, based on a string variable that would be passed to the `setText()`. How do I easily go about doing this? To clarify: I want to display the word "website" is a link, and I need the URL to which that link directs to be dynamically updated based on the specific path that brought the user to that view. Thanks! EDIT: Here is the updated code: ``` String linkedText = "<b>text3:</b> Text with a " + String.format("<a href=\"%s\">link</a> ", WEB) + "created in the Java source code using HTML."; web.setText(Html.fromHtml(linkedText)); web.setMovementMethod(LinkMovementMethod.getInstance()); ``` Here is the TextView's XML: ``` <TextView android:id="@+id/vWeb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/vPhone" android:layout_marginTop="5dp" android:layout_toRightOf="@+id/webIcon" android:paddingLeft="1dp" android:autoLink="web" android:textIsSelectable="true" /> ```