2011-01-13 10 views
24

Mam TextView z Androidem: autoLink = "e-mail".TextView, aby wysłać wiadomość e-mail po kliknięciu

Jeśli umieściłem tam mój adres e-mail, pojawi się link, który można kliknąć.

W jaki sposób mam wyświetlać inny tekst (na przykład "Prześlij opinię") zamiast adresu e-mail, ale zachowujesz się tak samo po kliknięciu?

Dzięki

Odpowiedz

49

Aby osiągnąć to, co chciałem wymaga innego podejścia:

TextView feedback = (TextView) findViewById(R.id.TextViewSendFeedback); 
feedback.setText(Html.fromHtml("<a href=\"mailto:[email protected]\">Send Feedback</a>")); 
feedback.setMovementMethod(LinkMovementMethod.getInstance()); 

To w zasadzie stawia HTML w TextView więc mam link z napisem „Wyślij opinię”, ale kliknięcie otwiera domyślną aplikację e-mail.

Słowo ostrzeżenia: Próbowanie tego w emulatorze początkowo nie działało dla mnie, mówiąc, że nie było obsługiwane. Stało się tak tylko dlatego, że nie miałem konfiguracji konta e-mail. Ustawienie w emulatorze sprawiło, że podobne działa tak, jak chciałem.

+1

Jedną z rzeczy, na które należy uważać, jest to, że to nie zadziała, jeśli ustawisz android: autoLink na "wszystkie". Prawdopodobnie nie zadziała, jeśli ustawisz android: autoLink na coś innego niż "none", ale tego nie przetestowałem. –

+2

Przechowując ciąg w zasobie ciągowym, należy zamienić lewy wspornik kątowy na < – ErikAndren

1

może łatwiej będzie utworzyć przycisk i wewnątrz onClickListener() wyciągnąć maila od być może R.string.email.

+0

To bardzo dobra sugestia, której nigdy nie brałem pod uwagę! Właściwie mogę tego użyć, mimo że znalazłem rozwiązanie. Dzięki! – neildeadman

28

Innym prostym sposobem w układzie:

... 
<TextView 
     android:id="@+id/tvTelefone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/sobre_telefone" 
     android:textColor="#000000" 
     android:autoLink="phone" /> 
...  

... 
<string name="sobre_telefone">Contato: (45) 9145-0000</string> 
} 

Czytaj więcej tutaj: http://developer.android.com/reference/android/widget/TextView.html#attr_android:autoLink

+2

Jest to w rzeczywistości najlepsze rozwiązanie, jeśli potrzebujesz prostej obsługi strony internetowej i łączenia adresów e-mail. Dla tych, którzy nie rozumieją odpowiedzi, po prostu sprawdź podany link właściwości autoLink. – cprcrack

+0

autoLink = "email" zadziałało dla mnie .. świetna odpowiedź –

25

można wykorzystywać zarówno linki i e-mail, jeżeli chcesz ustawić następujące param w TextView

android:autoLink="web|email" 

się linki będą otwierane w przeglądarce, a wiadomości będą wysyłane przez domyślnego klienta poczty

+0

to nie działa po mojej stronie –

0

Fro the Strings od strings.xml:

<string name="your_string"><![CDATA[ contact us at <a href=\"mailto:[email protected]\">[email protected]</a> for more help.]]></string> 


tvObject.setText(Html.fromHtml(getString(R.string.your_string))); 
tvObject.setMovementMethod(LinkMovementMethod.getInstance()); 
Powiązane problemy