3
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);

我正在尝试通过 SMS 发送多个消息正文,但只有“You Rock!!!” 被陈列。我想要做的是能够显示多条消息并将其预先格式化(在不同的行上)。

所以例如...

Hello World
You Rock!!!
4

2 回答 2

6

如果您想发送多行消息,只需在 2 个字符串之间添加一个换行符。

x + "\n" + y

如果想发送多条消息,我知道没有办法做到这一点。您可以使用 [startActivityForResult][1] 然后在您的活动 [onActivityResult][2] 方法中发送下一条消息。

[1]: http: //developer.android.com/reference/android/app/Activity.html#startActivityForResult (android.content.Intent , int)

[2]: http: //developer.android.com/reference/android/app/Activity.html#onActivityResult (int, int, android.content.Intent)

于 2011-02-16T07:46:47.627 回答
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 几乎存在于每个字符串表示中,因此它也可以在这里工作。试一试并告诉我们。

顺便说一下,作为一个建议,试着给变量(不仅仅是 x 或 y)起一个可以理解的名字。如果您想重用代码或发现错误,您可能想知道 x 或 y 到底是什么。

最好的祝福

于 2011-02-16T08:00:01.963 回答