TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
CharSequence text = tv.getText();
if (text instanceof Spannable) {
int end = text.length();
Spannable sp = (Spannable) text;
URLSpan urls[] = sp.getSpans(0, end, URLSpan.class);
SpannableStringBuilder style = new SpannableStringBuilder(text);
style.clearSpans();
for (URLSpan urlSpan : urls) {
MyURLSpan myURLSpan = new MyURLSpan(urlSpan.getURL());
style.setSpan(myURLSpan, sp.getSpanStart(urlSpan),
sp.getSpanEnd(urlSpan),
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
}
tv.setText(style);
}
}
private class MyURLSpan extends ClickableSpan {
private String url;
public MyURLSpan(String url) {
this.url = url;
}
@Override
public void onClick(View arg0) {
startActivity(new Intent(WXEntryActivity.this,RegisterActivity.class));
}
}
}
3. Les deux étapes ci-dessus résolvent parfaitement le problème de la mise en évidence et du soulignement du lien du site Web. Lorsque vous cliquez dessus, vous pouvez accéder à l'activité déterminée
.
Enfin, merci encore à tous pour vos réponses, et encore plus reconnaissant à l'internaute @小谷xg pour avoir fourni une référence de blog à cet égard, j'ai beaucoup appris.
Avez-vous besoin de faire un tel détour ? Définissez directement clickable="true" sur textView, puis définissez l'événement de clic textview.setOnclickListener, sautez, textview.getText obtient l'URL
N'utilisez pas l'attribut autolink. Définissez directement l'événement click de la textview S'il contient une chaîne qualifiée, ce ne sera pas l'événement correspondant : comme l'appel d'une activité
Description des exigences : 1. L'affiche doit souligner le lien du site Web 2. L'affiche espère accéder à l'activité déterminée lorsqu'elle est cliquée
Merci à tous les internautes enthousiastes pour vos réponses, j'ai trouvé les réponses pertinentes. Les détails sont les suivants :
Remarque Android:autoLink="web"
2. Réécrivez l'événement de clic de l'url
classe publique MainActivity étend l'activité {
3. Les deux étapes ci-dessus résolvent parfaitement le problème de la mise en évidence et du soulignement du lien du site Web. Lorsque vous cliquez dessus, vous pouvez accéder à l'activité déterminée
.Enfin, merci encore à tous pour vos réponses, et encore plus reconnaissant à l'internaute @小谷xg pour avoir fourni une référence de blog à cet égard, j'ai beaucoup appris.
Avez-vous besoin de faire un tel détour ? Définissez directement clickable="true" sur textView, puis définissez l'événement de clic textview.setOnclickListener, sautez, textview.getText obtient l'URL
Hériter
ClickableSpan
Remplacer laonClick
MéthodeJ'ai déjà écrit ceci, pensez-vous que cela aide ?
N'utilisez pas l'attribut autolink. Définissez directement l'événement click de la textview S'il contient une chaîne qualifiée, ce ne sera pas l'événement correspondant : comme l'appel d'une activité
Description des exigences :
1. L'affiche doit souligner le lien du site Web
2. L'affiche espère accéder à l'activité déterminée lorsqu'elle est cliquée
Le propriétaire du groupe a-t-il trouvé une solution ? J'ai aussi rencontré ce problème