2012-02-09 13 views
21

私は通常、ユーザが自分のアプリを最初に使用したときに何らかの種類のAlertDialogを起動し、アプリの使い方を説明して全体的な紹介をします彼らはちょうどダウンロードしたものに。私は通常strings.xmlファイルから自分の文字列を読み込みます。Android - 文字列リソースにクリック可能なリンクを追加することは可能ですか

私がしたいことは、文字列リソース内の単語の1つをWebページ上のハイパーリンクのようにクリック可能にすることです。基本的には、AlertDialogがあり、文字列リソース内にハイライトされた単語が表示されます。私はサイトにそれらを取るボタンを追加することができますが、私はちょうどクリック可能なハイパーリンクが文字列リソース内の単語を作ることを知りたいと思った。

答えて

43

alert_dialog_layout.xml

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); 

ちょうどあなたのリソースにHTML形式のリンクを使用して:あなたは、リンクのクリック可能なを作るためにあなたのTextViewsetMovementMethod(LinkMovementMethod.getInstance())を使用することができます

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

TextViewandroid:autoLink属性も機能するはずです。

+1

恐ろしい:)私はそれが働くようになると、これを設定してポストバックしてみてください:) –

+4

アンドロイド:autoLink = "web"は私にとって完璧に機能します。 – Rajkiran

+1

私は、リンクが表示されていないので、文字列*のすべてが見つかりませんでした(このため、<0126>)。これどうやってやるの? –

5

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

<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" /> 
+0

ねえのおかげで動作しますinfo :)私はかなりクールなwebview thatsを使用することについて考えることもしませんでした。 –

+2

このような些細なことにWebViewを使用することは、本当に悪い考えです。 –

3

私は何か興味深いものを見つけました。もしあなたの誰かがこれを観察したら私に教えてください。あなたは

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 
</string> 
    </a> 
関連する問題