web-dev-qa-db-ja.com

Android-クリック可能なリンクを文字列リソースに追加することは可能ですか

通常、ユーザーがアプリの1つを最初に使用するときに起動するように、ある種のAlertDialogを設定し、アプリの使用方法を説明し、ダウンロードしたものの概要を説明します。また、通常、strings.xmlファイル。

私がやりたいのは、文字列リソース内の単語の1つをWebページ上のハイパーリンクのようにクリック可能にすることです。基本的にAlertDialogがあり、文字列リソース内に強調表示されたWordまたは場合によっては押すことができる単なるWebアドレスがあります。それらをサイトに移動するボタンを追加するだけでよいと思いますが、文字列リソース内のWordをクリック可能なハイパーリンクにすることができるかどうかを知りたいだけです。

33

リソースでHTML形式のリンクを使用するだけです。

_<string name="my_link"><a href="http://somesite.com/">Click me!</a></string>_

次に、TextViewsetMovementMethod(LinkMovementMethod.getInstance())を使用して、リンクをクリック可能にします。

TextViewの_Android:autoLink_属性もあり、これも機能するはずです。

58
Nikolay Elenkov

私は何か面白いものを見つけました。誰かがこれを観察したかどうか教えてください。

以下を使用する場合、ハイパーリンクは機能しません

Android:autoLink="web"

しかしで動作します

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>

ただし、次のリンクを使用すると、両方で機能します

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>
10
Prakash

Androidは、有効なリンクを含む文字列を自動的にクリック可能にしません。できることは、ダイアログにカスタムビューを追加し、WebViewを使用してアラートメッセージを表示することです。その場合、リソースにhtmlを保存でき、クリック可能になります。

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" />
4