J'ai généralement mis en place une sorte de AlertDialog
pour déclencher lorsqu'un utilisateur utilise une de mes applications pour la première fois et j'explique comment utiliser l'application et donne une introduction générale à ce qu'il vient de télécharger. Je charge également généralement mes chaînes à partir d'un strings.xml
fichier.
Ce que je veux faire, c'est rendre un des mots de ma ressource de chaîne cliquable comme un hyperlien sur une page Web. Fondamentalement, vous auriez un AlertDialog
et dans la ressource de chaîne, il y aurait un mot en surbrillance ou peut-être juste une adresse Web sur laquelle ils pourraient appuyer. Je suppose que je pourrais simplement ajouter un bouton qui les amènerait sur le site mais je voulais juste savoir si faire un mot dans votre ressource de chaîne un lien hypertexte cliquable était possible.
Utilisez simplement un lien au format HTML dans votre ressource:
<string name="my_link"><a href="http://somesite.com/">Click me!</a></string>
Vous pouvez ensuite utiliser setMovementMethod(LinkMovementMethod.getInstance())
sur votre TextView
pour rendre le lien cliquable.
Il existe également l'attribut Android:autoLink
De TextView
qui devrait également fonctionner.
J'ai trouvé quelque chose d'intéressant. Faites-moi savoir si l'un de vous a observé cela.
L'hyperlien ci-dessous ne fonctionne pas si vous utilisez
Android:autoLink="web"
mais fonctionne avec
TextView link = (TextView) findViewById(R.id.link);
link.setMovementMethod(LinkMovementMethod.getInstance());
<string name="my_link">
<a href="http://stackoverflow.com/questions/9204303/Android-is-it-possible-to-add-a-clickable-link-into-a-string-resource">
Click me!
</a>
</string>
mais si vous utilisez le lien suivant, cela fonctionne avec les deux
Android:autoLink="web" (or)
TextView link = (TextView) findViewById(R.id.link);
link.setMovementMethod(LinkMovementMethod.getInstance());
<string name="my_link">
<a href="http://stackoverflow.com/questions/9204303/Android-is-it-possible-to-add-a-clickable-link-into-a-string-resource">
http://stackoverflow.com/questions/9204303/Android-is-it-possible-to-add-a-clickable-link-into-a-string-resource
</a>
</string>
Android ne crée pas automatiquement de chaînes contenant un lien valide. Ce que vous pouvez faire, c'est ajouter une vue personnalisée à votre boîte de dialogue et utiliser WebView pour afficher le message d’alerte. Dans ce cas, vous pouvez stocker du html dans vos ressources et elles seront cliquables.
View alertDialogView = LayoutInflater.inflate(R.layout.alert_dialog_layout, null);
WebView myWebView = (WebView) alertDialogView.findViewById(R.id.dialogWebView);
myWebView.loadData("<a href=\"http://google.com\">Google!</a>", "text/html", "utf-8");
AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this);
builder.setView(alertDialogView);
alert_dialog_layout.xml
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent" Android:layout_height="wrap_content"
Android:orientation="vertical">
<WebView Android:id="@+id/dialogWebView" Android:layout_height="wrap_content"
Android:layout_width="wrap_content" />