String x="Hello World";
String y="You Rock!!!";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", x);
sendIntent.putExtra("sms_body", y);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
我正在尝试通过短信发送多个邮件正文,但只有“你摇滚!!!”被展示。我想要做的是能够显示多条消息并预先格式化(在不同的行上)。
所以例如......
Hello World
You Rock!!!
答案 0 :(得分:6)
如果要发送多行消息,只需在两个字符串之间添加换行符。
x + "\n" + y
如果想要发送多条消息,我无法做到这一点,我知道。您可以使用[startActivityForResult] [1]然后在您的活动[onActivityResult] [2]方法中发送下一条消息。
[2]: http://developer.android.com/reference/android/app/Activity.html#onActivityResult(int,int,android.content.Intent)
答案 1 :(得分:3)
问题在于你覆盖扩展数据,因为putExtra没有将你在Bundle参数(第二个)中编写的所有内容添加到列表中,而是重置其内容。这就是为什么你只能看到最后一部分,因为你首先将额外的名为“sms_body”设置为“Hello World”,然后将其重置为“You Rock !!!”。
我没有尝试过,但是如果你这样做的话,它可以工作:
String smsBody="Hello World\nYou Rock!!!";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", smsBody);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
字符\ n是换行符(http://en.wikipedia.org/wiki/Newline)的特殊字符,这意味着您将该字符串写成两行(将它们拆分到\ n是的位置)。 \ n几乎存在于每个String表示中,所以它也可以在这里工作。试一试并告诉我们。
顺便说一句,作为一个建议,尝试为变量(不仅仅是x或y)提供可理解的名称。如果您想重用代码或发现错误,您可能想知道x或y究竟是什么。
祝你好运