2011-01-13 95 views
24

我有一个TextView与android:autoLink =“电子邮件”。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

需要注意的一件事是,如果将android:autoLink设置为“all”,这将不起作用。如果将android:autoLink设置为除“none”以外的任何内容,则可能不起作用,但我没有对其进行测试。 – 2012-07-28 08:28:20

+2

如果您将字符串存储在字符串资源中,则需要用< – ErikAndren 2013-07-19 15:27:04

1

这可能是更容易地创建一个按钮,并从可能R.string.email您onClickListener()内拉的电子邮件。

+0

这是一个非常好的建议,我从来没有考虑过!即使找到了解决方案,我也可以使用它。谢谢! – neildeadman 2011-01-14 08:54:14

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 2013-12-30 13:05:50

25

,如果你设置以下PARAM在TextView的

android:autoLink="web|email" 

的您可以同时使用链接和电子邮件链接将在浏览器中打开,邮件将由默认邮件客户端发送。

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