Android-Est-il possible d'ajouter un lien cliquable dans une ressource de chaîne
j'ai l'habitude de définir une sorte de AlertDialog
se déclenche lorsqu'un utilisateur utilise une de mes applications, et que je vous explique comment utiliser l'application et de donner une présentation générale de ce qu'ils ont téléchargé. Je charge aussi habituellement mes chaînes à partir d'un fichier strings.xml
.
ce que je veux faire est de 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 surligné mot ou peut-être juste une adresse web qu'ils pourraient presse. Je suppose que je pourrais juste ajouter un bouton qui les conduirait au site mais je voulais juste savoir si faire un mot dans votre ressource de chaîne de caractères un hyperlien cliquable était possible.
3 réponses
utilisez simplement un lien En format HTML dans votre ressource:
<string name="my_link"><a href="http://somesite.com/">Click me!</a></string>
vous pouvez alors utiliser setMovementMethod(LinkMovementMethod.getInstance())
sur votre TextView
pour rendre le lien cliquable.
il y a aussi l'attribut TextView
's android:autoLink
qui devrait aussi fonctionner.
j'ai trouvé quelque chose d'intéressant. Laissez-moi savoir si vous avez observé.
ci-dessous le lien hypertexte 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="/q/android-is-it-possible-to-add-a-clickable-link-into-a-string-resource-68058/">
Click me!
</a>
</string>
mais si vous utilisez le lien suivant il 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="/q/android-is-it-possible-to-add-a-clickable-link-into-a-string-resource-68058/">
http://stackoverflow.com/questions/9204303/android-is-it-possible-to-add-a-clickable-link-into-a-string-resource
</string>
</a>
Android ne rend pas les chaînes qui contiennent un lien valide cliquable automatiquement. Ce que vous pouvez faire, c'est ajouter une vue personnalisée à votre dialogue et utiliser WebView pour afficher le message d'alerte. Dans ce cas, vous pouvez stocker html dans vos ressources et ils 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" />