2012-01-27 1 views
3

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

<?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> 

EDIT: Решение, которое я выбрал:

   View layout = inflater.inflate(R.layout.about, null); 
       Pattern p = Pattern.compile("[email protected]"); 
       String Scheme = "mailto:[email protected]"; 
       Linkify.addLinks((TextView)layout.findViewById(R.id.textView1), p, Scheme); 

ответ

4

Заканчивать this статья. Вам нужно связать текст.

1

Вам нужно что-то вроде этого бесстыдных вилок: 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://[email protected]&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")); 
    } 

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

Clue:

+0

Я могу добавить это в строку: [email protected] но это только цвета по электронной почте в виде ссылки и ничего не делать, когда я нажимаю его. Возможно, если я добавлю clickable = true, он будет работать. В принципе, я не хочу писать свой собственный диалог отправки электронной почты, это бессмысленно. Есть ли простой способ вызвать метод рассылки по умолчанию для устройства? – user1097185

+0

внутри 'if (data.getHost(). Equals (" SENDEMAIL ")) {}' вы бы назвали 'Intent.ACTION_SEND', как указано в ** подсказке ** – ariefbayu

0

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

<string name="MailText">Click [email protected] 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" /> 
Смежные вопросы