How do I make a deep link string for example "myapp://product/123" clickable in android TextView. I know there are autoLink options like email, web and phone but there isn't any deeplink option. How do I make it clickable and launch the intent on click of that link?
How to make deep link string clickable in android TextView
Asked Answered
you can do that by using ClickableSpan
eg.
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
startActivity(new Intent(MyActivity.this, NextActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
};
See this link How to set the part of the text view is clickable
Just you have to make code as like below in java file.That can be you can click to any link from textview.
TextView t2 = (TextView) findViewById(R.id.text2);
t2.setMovementMethod(LinkMovementMethod.getInstance());
Appreciate your help. But that didn't help –
Rootstock
Works only for http/https scheme. –
Tauto
Just use this
YourTextView.setMovementMethod(LinkMovementMethod.getInstance());
Appreciate your answer.. But that didn't help –
Rootstock
if you added android:autoLink="web" in xml layout, then remove that property and try. –
Haff
Looking at https://mcmap.net/q/45588/-how-to-make-links-in-a-textview-clickable, I wrote similar:
val url = "myapp://example.com/some_string"
textView.text = url
textView.setOnClickListener {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
}
You don't even need <uses-permission android:name="android.permission.INTERNET" />
in AndroidManifest
.
If you have an application, responding to myapp
scheme and example.com
host, it will be opened.
To format the textView
like a link also write:
textView.hyperlinkStyle()
private fun TextView.hyperlinkStyle() {
setText(
SpannableString(text).apply {
setSpan(
URLSpan(""),
0,
length,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
},
TextView.BufferType.SPANNABLE
)
}
© 2022 - 2024 — McMap. All rights reserved.
android:autoLink="web"
attribute ? – GibberTextView
? – GibberTextView
inside your own app? – Schroder