0

询问

在这里,用户必须输入他/她的姓名、年龄和信息。它必须打开 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 :"));
4

3 回答 3

1

Gmail 不接受姓名和年龄字段。

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

s4msg = s1name + "\n" + s2age + "\n" + s4msg   
email.putExtra(Intent.EXTRA_TEXT, s4msg);
于 2012-12-19T14:25:36.010 回答
1

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

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 :"));
于 2012-12-19T14:26:16.637 回答
0

那是因为 EMAIL 类型没有名称或年龄的概念。电子邮件仅包含收件人、发件人、消息和主题。您必须连接您的姓名和年龄数据并将其放在主题或消息中。像这样的东西会起作用:

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 :"));

这会将姓名和年龄放在电子邮件正文(消息)的一行中。

于 2012-12-19T14:25:37.167 回答