Android:如何向电子邮件传递额外的字符串?

Android:如何向电子邮件传递额外的字符串?,android,android-intent,email,Android,Android Intent,Email,用户必须在此处输入其姓名、年龄和信息。它必须打开Gmail应用程序,显示输入的姓名/年龄/信息。它只显示信息。剩下的细节我不明白 String s1= name.getText().toString(); String s2= age.getText().toString(); String s3= msg.getText().toString(); Intent email = new Intent(Intent.ACTION_SEND); email.putExtra

用户必须在此处输入其姓名、年龄和信息。它必须打开Gmail应用程序,显示输入的姓名/年龄/信息。它只显示信息。剩下的细节我不明白

String s1= name.getText().toString();
   String s2= age.getText().toString();
   String s3= msg.getText().toString();
   Intent email = new Intent(Intent.ACTION_SEND);
   email.putExtra(Intent.EXTRA_EMAIL,
   new String[] { "abc@gmail.com" });
   email.putExtra(Intent.EXTRA_SUBJECT,"hiiiii");
   email.putExtra("Name", s1);
   email.putExtra("Age", s2);
   email.putExtra(Intent.EXTRA_TEXT, s3);
   email.setType("message/rfc822");
   startActivity(Intent.createChooser(email,"Choose an Email client :"));

Gmail不包含姓名和年龄字段

如果要将它们附加到消息正文中,可以将它们附加到
s4msg
字符串中,并将它们作为消息一起传递

s4msg = s1name + "\n" + s2age + "\n" + s4msg   
email.putExtra(Intent.EXTRA_TEXT, s4msg);

这是因为电子邮件类型没有名字或年龄的概念。电子邮件只包含收件人、发件人、消息和主题。您必须将您的姓名和年龄数据连接起来,并将其放入主题或消息中。类似这样的方法会奏效:

String s1= name.getText().toString();
String s2= age.getText().toString();
String s3= msg.getText().toString();
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL,
new String[] { "abc@gmail.com" });
email.putExtra(Intent.EXTRA_SUBJECT,"hiiiii");
email.putExtra("Name", s1);
email.putExtra("Age", s2);
nameAgeStr = "Name: " + s1 + " Age: " + s2 + ".\n";
email.putExtra(Intent.EXTRA_TEXT,nameAgeStr + s3);
email.setType("message/rfc822");
startActivity(Intent.createChooser(email,"Choose an Email client :"));

这将把姓名和年龄放在电子邮件正文(消息)的自己的行上。

在打开邮件应用程序之前,您需要格式化邮件正文。比如:

String messageTemplate = "Hi %1$s\nThis is your message: %2$s";
String mailBody = String.format( messageTemplate, name.getText().toString(), msg.getText().toString() );

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[] { "abc@gmail.com" });
email.putExtra(Intent.EXTRA_SUBJECT,"hiiiii");
email.putExtra(Intent.EXTRA_TEXT, mailBody);
email.setType("message/rfc822");
startActivity(Intent.createChooser(email,"Choose an Email client :"));