2012-02-09 4 views
21

Обычно я настраиваю какой-то AlertDialog, чтобы сгореть, когда пользователь сначала использует одно из моих приложений, и я объясню, как использовать приложение и дать общее введение к чему они только что скачали. Я также обычно загружаю свои строки из файла strings.xml.Android-можно ли добавить ссылку на ссылку в строковый ресурс

Что я хочу сделать, это сделать одно из слов в моем строковом ресурсе, кликабельным, как гиперссылка на веб-странице. В основном у вас будет AlertDialog, и в строчном ресурсе будет выделенное слово или, возможно, только веб-адрес, который они могли бы нажать. Я полагаю, что я мог бы просто добавить кнопку, которая приведет их на сайт, но я просто хотел знать, если сделать слово в вашем строковом ресурсе, возможна интерактивная гиперссылка.

ответ

43

Просто используйте ссылку в формате HTML в вашем ресурсе:

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

Вы можете использовать setMovementMethod(LinkMovementMethod.getInstance()) на вашем TextView сделать ссылку кликабельным.

Существует также TextViewandroid:autoLink атрибут, который также должен работать.

+1

Awesome :) Я постараюсь настроить это и отправить обратно, когда я получу его для работы :) –

+4

android: autoLink = "web" отлично работает для меня. – Rajkiran

+1

Я нахожу, что все в строке * после * ссылка не отображается (так что ' Это показывает и so does this, но это doesn 't'). Как ты делаешь это? –

5

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

Эй спасибо за info :) Я даже не думал об использовании веб-представления, которое довольно круто. –

+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> 
Смежные вопросы