2011-01-13 3 views
24

У меня есть TextView с android: autoLink = "email".TextView для отправки электронной почты при нажатии

Если я разместил свой адрес электронной почты там, появится ссылка, которую я могу щелкнуть.

Как получить другой текст (например, «Отправить отзыв») вместо адреса электронной почты, но по-прежнему вести себя одинаково при нажатии?

Благодаря

ответ

49

Чтобы достичь того, чего я хотел требуется другой подход:

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

В основном это помещает HTML в TextView так что я получаю ссылку сказать «Отправить отзыв», но нажав открывает приложение электронной почты по умолчанию.

Слово предупреждения: Попытка этого в эмуляторе не изначально работала для меня, заявив, что она не поддерживается. Это произошло потому, что у меня не было настройки учетной записи электронной почты. Настройка в эмуляторе сделала работу, как мне хотелось.

+1

Одна вещь, на которую нужно обратить внимание, заключается в том, что это не сработает, если вы установите андроид: autoLink на «все». Вероятно, это не сработает, если вы установили android: autoLink на что угодно, кроме «none», но я этого не тестировал. –

+2

Если вы храните строку в строковом ресурсе, вам нужно заменить левую угловую скобку на < – ErikAndren

1

Это может быть проще создать кнопку и внутри onClickListener() тянуть письмо от возможно R.string.email.

+0

Это очень хорошее предложение, что я никогда не считал! Я могу использовать это, хотя я нашел решение. Благодаря! – neildeadman

28

Другой простой способ в макете:

... 
<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> 
} 

Подробнее здесь: http://developer.android.com/reference/android/widget/TextView.html#attr_android:autoLink

+2

Это на самом деле лучшее решение, если вам просто нужна базовая поддержка связывания веб-сайта и адреса электронной почты. Для тех, кто не согласен с ответом, просто проверьте предоставленную ссылку 'autoLink'. – cprcrack

+0

autoLink = "email" работал для меня .. отличный ответ –

25

Вы можете использовать обе ссылки и электронной почты, если вы установите следующий параметров в TextView

android:autoLink="web|email" 

в ссылки будут открываться в браузере, и почта будет отправлена ​​почтовым клиентом по умолчанию

+0

это не работает на моей стороне –

0

Фро строки из 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()); 
Смежные вопросы