如何添加电子邮件链接到布局xml,Android

时间:2012-01-27 14:49:19

标签: android email text hyperlink alertdialog

我有一个xml文件,用于在我的应用程序中显示关于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 个答案:

答案 0 :(得分:4)

查看this文章。您需要链接您的文字。

答案 1 :(得分: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" />

on 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"));
    }

就是这样。您现在应该了解下一步该做什么。

线索:

答案 2 :(得分:1)

这对我来说很简单(使用SDK版本23.不确定此属性是否存在于早期版本中)。添加autoLink =&#34;电子邮件&#34;在textview中并在Strings.xml中提供电子邮件ID。此电子邮件ID以蓝色显示为链接,点击后会打开我们的电子邮件。请试着告诉我。

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