Как добавить ссылку на электронную почту в макет XML, Android - PullRequest
3 голосов
/ 27 января 2012

У меня есть XML-файл, который я использую для отображения About AlertDialog в моем приложении.Мне удалось получить область текста из текстового ресурса и изображение справа от текста.Теперь мне нужно добавить в текст поддержку по электронной почте и, возможно, адрес домашнего сайта.Но мне нужно, чтобы это было кликабельно.Таким образом, нажатие на электронное письмо отправит электронное письмо, а нажатие на веб-сайт откроет браузер.Как добавить этот связанный текст?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:weightSum="1" android:orientation="horizontal" android:baselineAligned="true">
    <TextView android:text="@string/AboutString" android:layout_gravity="center_horizontal" android:id="@+id/textView1" android:layout_height="173dp" android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:drawableRight="@drawable/explain"></TextView>
</LinearLayout>

РЕДАКТИРОВАТЬ: Решение, которое я выбрал:

                View layout = inflater.inflate(R.layout.about, null);
                Pattern p = Pattern.compile("somemail@domain.net");
                String Scheme = "mailto:somemail@domain.net";
                Linkify.addLinks((TextView)layout.findViewById(R.id.textView1), p, Scheme);

Ответы [ 3 ]

4 голосов
/ 27 января 2012

Оформить эту статью.Вам необходимо указать текст.

1 голос
/ 30 ноября 2016

Это было просто для меня (с использованием SDK версии 23. Не уверен, существует ли это свойство в более ранней версии).Добавьте autoLink = "email" в textview и укажите идентификатор электронной почты в Strings.xml.Этот идентификатор электронной почты представлен в виде синего цвета в качестве ссылки, и он открывает нам электронное письмо после нажатия.Пожалуйста, попробуйте и дайте мне знать.

<string name="MailText">Click abc@gmail.com to send us a mail for any query</string>

<TextView
    android:id="@+id/mailtext"
    android:text="@string/MailText"
    android:autoLink="email"
    android:layout_height="wrap_content" />
1 голос
/ 27 января 2012

Вам нужно что-то вроде этого бесстыдный плагин : https://github.com/ariefbayu/Clickable-URL-TextView-Example

По сути, вы должны установить TextView в:

        <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:clickable="true" />

на onCreate:

html.append("<a href='lauch.TCActivity://SENDEMAIL?email=mail@example.com&subject=email subject&body=this is email body'>Email</a>");
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());

И обработать его в TCActivity:

    if(data.getHost().equals("SENDEMAIL")){
        Log.i("LOG", "Email:" + data.getQueryParameter("email"));
        Log.i("LOG", "Subject:" + data.getQueryParameter("subject"));
        Log.i("LOG", "Body:" + data.getQueryParameter("body"));
    }

Вот и все.Теперь вы должны получить представление о том, что делать дальше.

Подсказка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...