我尝试从多个EditText
发送电子邮件并为其提取文字。但是当我点击按钮时,我只看到电子邮件正文中的最后一个EditText
。
请告诉我'错了吗?
private View.OnClickListener myListener = new View.OnClickListener() {
public void onClick(View v) {
Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("message/rfc822"); //specifies message for email app.
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"my_email@gmail.com"} );
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Заявка на замер");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Имя клиента: " + getOrderName());
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Номер телефона : " + getOrderPhone());
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Адрес : " + getOrderAdress());
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Дата : " + getOrderDate() );
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Удобное время : " + getOrderTime() );
startActivity(Intent.createChooser(emailIntent, "Выберите почтовый сервис"));
}
};
在电子邮件正文中我只看到最后一个:
Удобное время
答案 0 :(得分:1)
尝试如下,它适用于你
通过合并字符串,您可以实现您想要的
private View.OnClickListener myListener = new View.OnClickListener() {
public void onClick(View v) {
Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("message/rfc822"); //specifies message for email app.
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"my_email@gmail.com"} );
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Заявка на замер");
String body ="Имя клиента: " + getOrderName()+"\n"+
"Номер телефона : " + getOrderPhone()+"\n"+
"Адрес : " + getOrderAdress()+"\n"+
"Дата : " + getOrderDate()+"\n"+
"Удобное время : " + getOrderTime();
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
startActivity(Intent.createChooser(emailIntent, "Выберите почтовый сервис"));
}
};
快乐的编码!
答案 1 :(得分:1)
在您为案例设置新值时每次更换StringBuilder
时,您需要使用EXTRA_TEXT
。
你可能会做这样的事情。
StringBuilder sb;
sb.append("Имя клиента: " + getOrderName());
sb.append('\n');
sb.append("Номер телефона : " + getOrderPhone());
sb.append('\n');
sb.append("Адрес : " + getOrderAdress());
sb.append('\n');
// ... Others
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,sb);
答案 2 :(得分:1)
您尝试发送的额外文本是一键标识符。因此,每当你把它放入时它都会被替换掉。这就是为什么只添加你的上一个putExtra的原因。
尝试连接您的消息字符串,然后将其添加到putExtra。
答案 3 :(得分:0)
可能会有所帮助。 创建一个字符串“email_body”并将整个电子邮件的一部分放入其中,然后将其传递给Intent。
String email_body="Имя клиента: "+getOrderName()+"\nНомер телефона : "+getOrderPhone()+.......+ getOrderTime();
然后在你的点击监听器中执行此操作。
Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("message/rfc822"); //specifies message for email app.
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"my_email@gmail.com"} );
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Заявка на замер");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,email_body);
startActivity(Intent.createChooser(emailIntent, "Выберите почтовый сервис"));