caw*_*caw 7 email android android-intent
在各种Android应用程序中,我使用以下代码显示电子邮件的应用程序选择器,并在用户决定使用其中一个应用程序后,在电子邮件表单中插入预定义文本:
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "info@example.org" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Sample subject");
String contentStr = "";
for (Object o : mArrayList) { // mArrayList: ArrayList<Object>
content = contentStr+o.toString()+"\n";
}
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, backupStr);
startActivity(Intent.createChooser(emailIntent, "Choose application"));
Run Code Online (Sandbox Code Playgroud)
在for循环中,对象的字符串输出与临时字符串"contentStr"连接在一起.在每个对象之后,应该有一个换行符("\n").
因此,当我在手机上测试此代码时,它工作正常,每个对象都有自己的行.
但是用户报告说他们的电子邮件应用程序(也是Android标准)将所有内容放在一行中并忽略了换行符.
我做错了什么?或者我可以忽略这个错误报告,因为它不是开发人员可以解决的问题吗?
2个潜在的线索:
<br>)另外,这里的代码有问题
String contentStr = "";
for (Object o : mArrayList) { // mArrayList: ArrayList<Object>
content = contentStr+o.toString()+"\n";
}
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, backupStr);
Run Code Online (Sandbox Code Playgroud)
这不会在意图中放入任何内容, contentStr 为空,并且 content 仅包含最后一个对象。
这是一种更好、更短、更有效的方法:
contentStr = TextUtils.join("\n", mArrayList);
Run Code Online (Sandbox Code Playgroud)
你需要替换\n到<br/>甚至你把EXTRA_TEXT。有我的代码:
final Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL, "xxx@xxx.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "This\nis\na\ntest!".replace("\n", "<br/>"););
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3709 次 |
| 最近记录: |