Подтвердить что ты не робот

Android. Можно ли добавить ссылку на ссылку в строковый ресурс?

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Я нашел что-то интересное. Дайте мне знать, если кто-нибудь из вас наблюдал это.

Ниже гиперссылка не работает, если вы используете

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>

Ответ 3

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