3 Stimmen

Hinzufügen eines E-Mail-Links zum Layout xml, Android

Ich habe eine xml-Datei, die ich verwende, um den Über AlertDialog in meiner App anzuzeigen. Ich war in der Lage, einen Textbereich aus einer Textressource und ein Bild rechts neben dem Text zu haben. Jetzt muss ich dem Text die E-Mail-Adresse des Supports und möglicherweise die Adresse der Website hinzufügen. Aber ich muss es anklickbar sein. Wenn ich also auf die E-Mail klicke, wird eine E-Mail gesendet, und wenn ich auf die Website klicke, wird der Browser geöffnet. Wie füge ich diesen verlinkten Text hinzu?

<?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: Die von mir gewählte Lösung:

                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);

4voto

Zsombor Erdődy-Nagy Punkte 16744

Sie müssen linkify Ihr Text. Hier ist ein Beispiel aus diesem Artikel, das zeigt, wie man Links hinzufügt, wenn ein WikiWord gefunden wird:

Pattern wikiWordMatcher = Pattern.compile("\\b[A-Z]+[a-z0-9]+[A-Z][A-Za-z0-9]+\\b");
String wikiViewURL =    "content://com.google.android.wikinotes.db.wikinotes/wikinotes/";
Linkify.addLinks(noteView, wikiWordMatcher, wikiViewURL);

1voto

ariefbayu Punkte 21181

Sie brauchen etwas wie dies schamlose Werbung : https://github.com/ariefbayu/Clickable-URL-TextView-Example

Im Grunde würden Sie Ihre TextView in setzen:

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

auf 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());

Und verarbeiten Sie es in 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"));
}

Das war's. Sie sollten jetzt eine Idee haben, was Sie als nächstes tun müssen.

Siehe:

1voto

Sachiin Gupta Punkte 348

Dies war für mich einfach (ich verwende SDK Version 23. Ich bin nicht sicher, ob diese Eigenschaft in früheren Versionen existiert). Fügen Sie autoLink="email" in textview hinzu und geben Sie die E-Mail-ID in Strings.xml an. Diese E-Mail-ID wird in blauer Farbe als Link angezeigt und öffnet uns die E-Mail, sobald sie angeklickt wird. Bitte versuchen Sie es und lassen Sie es mich wissen.

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

0voto

Nikos foxnks Punkte 1

Android TextView hat eine Eigenschaft namens autoLink die nur wenige Parameter zulässt, und einer von ihnen ist email die das Framework anweist, alle Arten von E-Mails in diesem textView als anklickbar.

Bitte folgen Sie dem Beispiel unten:

<TextView
    ....
    android:text="youremail@gmail.com"
    android:autoLink = "email"
/>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X