首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ACTION_SEND 發送郵件:正確組合多欄位內容

     編輯:程式設計綜合問答

問題現象

使用 Intent.ACTION_SEND 發送郵件時,連續多次 putExtra(EXTRA_TEXT, ...) 導致只有最後一個值被保留(如範例中只剩經度)。

根本原因

Intent.putExtra(String, String) 對同一 Key 會覆蓋而非追加。

最佳實踐:StringBuilder 組裝內容

StringBuilder body = new StringBuilder();
body.append("姓名: ").append(txtName.getText()).append("\n");
body.append("地址: ").append(txtAddress.getText()).append("\n");
body.append("緯度: ").append(txtLatitude.getText()).append("\n");
body.append("經度: ").append(txtLongitude.getText());

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, txtName.getText().toString());
intent.putExtra(Intent.EXTRA_TEXT, body.toString());
startActivity(Intent.createChooser(intent, "分享至"));

進階:支援 HTML 格式

若需換行、粗體、顏色,使用 Html.fromHtml():

String htmlBody = "姓名: " + name + "
地址: " + address + "..."; intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(htmlBody));

注意:Android 7.0+ 需用 Html.FROM_HTML_MODE_LEGACY 旗標。

關鍵點總結

  • 單一 EXTRA_TEXT,內容預先組裝完成
  • 換行用 \n(純文字)或 <br>(HTML)
  • 使用 createChooser 讓用戶選擇郵件客戶端
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved