使用 Intent.ACTION_SEND 發送郵件時,連續多次 putExtra(EXTRA_TEXT, ...) 導致只有最後一個值被保留(如範例中只剩經度)。
Intent.putExtra(String, String) 對同一 Key 會覆蓋而非追加。
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.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 讓用戶選擇郵件客戶端