我正在制作一个按钮,通过电子邮件发送给sqlite数据库中包含电子邮件的所有用户。目前我已成功按下按钮,但只能调用链接到行ID的单个电子邮件地址。
以下是我调用电子邮件然后发送的代码。
view.findViewById(R.id.btn_save).setOnClickListener(new OnClickListener() {
public void onClick(View view ) {
Mail m = new Mail("gmail@gmail.com", "password");
int arg = 0;
String[] toArr = {user_eMail.get(arg)};
m.setTo(toArr);
m.setFrom("gmail@gmail.com");
m.setSubject("This email is never going to work");
m.setBody("If you can read this email, please call me immediately because this never should have worked.");
try {
if(m.send()) {
Toast.makeText(getActivity(), "Email was sent successfully.", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "Email was not sent.", Toast.LENGTH_LONG).show();
}
} catch(Exception e) {
//Toast.makeText(MailApp.this, "There was a problem sending the email.", Toast.LENGTH_LONG).show();
Log.e("MailApp", "Could not send email", e);
}
}
});
我如何改变" int arg = 0"调用数据库中的所有ID?如果您需要任何其他代码,请告诉我。
答案 0 :(得分:1)
好的,因为user_eMail
是ArrayList
private ArrayList<String> user_eMail = new ArrayList<String>();
.setTo()
方法必须接收以“,”
创建一个从包含电子邮件的数据库(例如getEmailsFromDB()
)中提取数组的方法:{"email1@gmail.com", "email2@gmail.com", "email3@gmail.com", "email4@gmail.com", "email5@gmail.com"};
并使用:
m.setTo(getEmailsFromDB())
其他选项,该方法从数据库返回一个字符串,其中包含由“,”分隔的所有电子邮件,如"email1@gmail.com, email2@gmail.com, email3@gmail.com, email4@gmail.com, email5@gmail.com";
String[] user_eMail = getEmailsFromDB().split(",");
m.setTo(user_eMail);