You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:如何在putExtra中添加多字符串及问卷邮件发送问题

搞定Android问卷提交邮件的多字符串内容问题

嘿,我来帮你解决这个问题!你已经搭好了邮件发送的基础框架,要把10道题的答案(多个字符串)加到邮件里其实很简单,核心就是把所有需要的内容拼接成一个易读的完整字符串,再传递给Intent就行。另外如果要传递多个独立的额外字段,直接多次调用putExtra()就可以,下面一步步来:

第一步:收集并拼接问卷答案

假设你的10道题对应的CheckBox是checkBox1到checkBox10,先把每道题的Yes/No答案收集起来,用StringBuilder拼接成清晰的内容:

// 收集所有问卷答案并拼接成字符串
StringBuilder surveyAnswers = new StringBuilder();
surveyAnswers.append("用户问卷提交结果:\n\n");
surveyAnswers.append("题目1:").append(checkBox1.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目2:").append(checkBox2.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目3:").append(checkBox3.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目4:").append(checkBox4.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目5:").append(checkBox5.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目6:").append(checkBox6.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目7:").append(checkBox7.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目8:").append(checkBox8.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目9:").append(checkBox9.isChecked() ? "Yes" : "No").append("\n");
surveyAnswers.append("题目10:").append(checkBox10.isChecked() ? "Yes" : "No").append("\n");

第二步:把拼接好的内容加入邮件Intent

在你现有的代码里,添加Intent.EXTRA_TEXT来传递邮件正文,要是需要额外传递其他独立字段(比如用户标识、提交时间),直接多调用几次putExtra()就行:

submit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // 先拼接问卷答案
        StringBuilder surveyAnswers = new StringBuilder();
        surveyAnswers.append("用户问卷提交结果:\n\n");
        surveyAnswers.append("题目1:").append(checkBox1.isChecked() ? "Yes" : "No").append("\n");
        // ... 这里补上题目3到10的拼接代码
        
        // 构建邮件Intent
        Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "abhi.bhardwaj75@gmail.com", null));
        intent.putExtra(Intent.EXTRA_SUBJECT, "Android问卷提交结果");
        // 把拼接好的多字符串内容作为邮件正文
        intent.putExtra(Intent.EXTRA_TEXT, surveyAnswers.toString());
        
        // 示例:如果需要传递额外的独立字段,直接加就行
        intent.putExtra("SUBMIT_TIMESTAMP", System.currentTimeMillis());
        intent.putExtra("USER_DEVICE", android.os.Build.MODEL);
        
        // 唤起邮件应用选择器
        startActivity(Intent.createChooser(intent, "请选择邮件应用发送"));
    }
});

小提示

  • ACTION_SENDTO是专门针对邮件的Intent,只会唤起系统里的邮件应用,不会弹出其他分享选项,非常适合你的问卷提交场景。
  • 如果想发HTML格式的邮件内容,可以用Intent.EXTRA_HTML_TEXT替代EXTRA_TEXT,不过要注意部分邮件客户端可能不支持HTML渲染。
  • 这个方案不需要额外申请权限,因为是调用系统邮件应用来处理发送操作,不需要你的App直接访问邮件服务。

这样就能把所有问卷的Yes/No答案都整合到邮件里发送啦!

内容的提问来源于stack exchange,提问作者Abhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:52:26