Как разместить гиперссылку на сайт в приложении для Android? - PullRequest
6 голосов
/ 14 июля 2011

Я хочу разместить гиперссылку на разрабатываемом приложении для Android.

Я пробовал это:

main.xml

<TextView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:text="@string/hyperlink"
android:id="@+id/hyperlink" 
android:autoLink="web"
>
</TextView>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WebLink</string>
<string name="hyperlink">http://google.com</string>
</resources>

Но проблема в том, что ссылка выглядит так: http://google.com и я не хочу показывать фактический URL.

1) Как заменить ссылку текстом, например, "Нажмите здесь, чтобы посетить Google", и текст связан с URL-адресом веб-сайта?

2) Как разместить адрес электронной почты (тот же вопрос, как заменить его текстом типа «Нажмите здесь, чтобы отправить по электронной почте», и текст должен быть связан с email@domain.com)


Я также пробовал этот урок: http://coderzheaven.com/2011/05/10/textview-with-link-in-android/

Но я получаю следующие сообщения об ошибках:

Description Resource    Path    Location    Type
http cannot be resolved to a variable   MyLink.java /MyLink/src/com/MyLink  line 21 Java Problem
Syntax error on token "" <br /> <a href="", ? expected after this token MyLink.java /MyLink/src/com/MyLink  line 21 Java Problem
Type mismatch: cannot convert from String to boolean    MyLink.java /MyLink/src/com/MyLink  line 20 Java Problem

1 Ответ

12 голосов
/ 14 июля 2011

Использовать значение по умолчанию Класс Linkify .

Вот пример и код из учебника:

Это мой пример кода для вас, я думаю, что это решит вашу проблему:

    public class StackOverflowActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // 1) How to replace link by text like "Click Here to visit Google" and
        // the text is linked with the website url ?
        TextView link = (TextView) findViewById(R.id.textView1);
        String linkText = "Visit the <a href='http://stackoverflow.com'>StackOverflow</a> web page.";
        link.setText(Html.fromHtml(linkText));
        link.setMovementMethod(LinkMovementMethod.getInstance());
        // 2) How to place email address
        TextView email = (TextView) findViewById(R.id.textView2);
        String emailText = "Send email: <a href=\"mailto:person@stackoverflow.com\">Click Me!</a>";
        email.setText(Html.fromHtml(emailText));
        email.setMovementMethod(LinkMovementMethod.getInstance());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...