解析TextView的电子邮件地址

时间:2013-07-17 04:17:33

标签: android android-intent textview

我正在写一个简单的宣传册应用程序。我在textview中有文本,其中包含电子邮件地址。

<string name="wbl_contacts">
<p><strong>CONTACT</strong></p>
<p>
  <strong>Where you can find us</strong>
  1525 Newton St NW
  Washington D.C., DC 20010
202.667.1192
  For current listing of class schedule at each of our sites, e-mail <a href="mailto:enroll@wblinc.org.">enroll@wblinc.org</a>
  To learn about volunteer opportunities e-mail <a href="mailto:volunteer@wblinc.org">volunteer@wblinc.org</a>
  To submit your resume for internship consideration e-mail <a href="mailto:intern@wblinc.org">intern@wblinc.org</a>
  To submit work for consideration for publication in the WBL journal email <a href="mailto:submissions@wblinc.org">submissions@wblinc.org</a>
  All other questions can be directed to <a href="mailto:info@wblinc.org">info@wblinc.org</a>
or call us at 202-667-1192 </p>
    </string>

我正在尝试使用Intent类来增加邮件应用程序,如:

//setting textviews
        tv1 = (TextView)findViewById(R.id.tv1);
        tv1.setMovementMethod(LinkMovementMethod.getInstance());
        //tv1.setText(Html.fromHtml(getString(R.string.wbl_contacts)));

        tv1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                //This will open an email client.  Find a way to use this code
                //to open all email address on any android app page
                Intent emailintent = new Intent(android.content.Intent.ACTION_SEND);
                emailintent.setType("text/html");
                emailintent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] {tv1.getText().toString()});
                emailintent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");
                emailintent.putExtra(android.content.Intent.EXTRA_TEXT,"");
                startActivity(Intent.createChooser(emailintent, "Send mail..."));
            }
            });

当我运行我的应用程序时,似乎整个TextView都是可点击的,即使所有电子邮件链接都是高亮的,好像它们是可链接的......有点丢失。

非常感谢任何建议或帮助。

1 个答案:

答案 0 :(得分:0)

是的,你不应该使用Intent来做这种行为。相反,你应该链接你的TextView。您可以阅读有关linkify here的更多信息。

您可以执行以下操作:

Linkify.addLinks(tv1 , Linkify.ALL);

或者,如果您只有电子邮件地址而不是href:

Linkify.addLinks(tv1 , Linkify.EMAIL_ADDRESSES);

编辑额外答案

您使用HTML语法而不是包含电子邮件的常规文本,因此您可以使用:

tv1.setText(Html.fromHtml("your string");

Android并不支持所有HTML代码,但可以找到支持的HTML代码列表here