将数组作为电子邮件的内容发送

时间:2013-12-18 09:12:21

标签: android email

以某种方式可以将数组作为电子邮件的内容传递吗?

我正在尝试:

这都是onClick方法

首先获取“EditText字段”

EditText tbLocation = (EditText)findViewById(R.id.tbLocation);

从中创建一个字符串

String tbLocationMessage = tbLocation.getText().toString();

然后尝试发送电子邮件

Intent email = new Intent(Intent.ACTION_SEND);
                email.putExtra(Intent.EXTRA_EMAIL, new String[] {});
                email.putExtra(Intent.EXTRA_SUBJECT, "Near Miss Report");
                email.putExtra(Intent.EXTRA_TEXT, new String []{tbLocationMessage,tbFuActionMessage,tbImActionMessage,tbIssueToRaiseMessage});

                // need this to prompts email client only
                email.setType("message/rfc822");

                startActivity(Intent.createChooser(email,
                        "Choose an Email client :"));

            }

当我设置一些断点时,我的数组都填充了我在文本字段中输入的文本。但是当我选择我的电子邮件客户端(“Gmail”)时,撰写文本字段为空...

为什么会这样?

2 个答案:

答案 0 :(得分:2)

使用下面的代码片段从String数组中获取String对象并在

中传递它
private String getMyStringMessage(String[] arr){
   StringBuilder builder = new StringBuilder();
   for(String s : arr) {
     builder.append(s);
   }
   return builder.toString();
}

email.putExtra(Intent.EXTRA_TEXT, getMyStringMessage(yout_string_array));

答案 1 :(得分:0)

Intent.EXTRA_TEXT应该是CharSequence,而不是字符串数组。尝试连接它们,而不是制作它们的数组。请参阅:http://developer.android.com/reference/android/content/Intent.html#EXTRA_TEXT