我创建了一个sqlite数据库。现在我需要通过电子邮件发送它。我已经能够了。我从sqlite数据库获取数据的代码是: -
public ArrayList<ChickenLogs> getData() {
ArrayList<ChickenLogs> log = new ArrayList<ChickenLogs>();
String sql = "SELECT * FROM " + DataBaseHelper.FOGHORN_TABLE;
Cursor cursor = db.rawQuery(sql,null);
Log.i("cursor", String.valueOf(cursor.getCount()));
while (cursor.moveToNext()) {
ChickenLogs chickenLogs = new ChickenLogs();
chickenLogs.set_id(cursor.getInt(0));
chickenLogs.setCatId(cursor.getInt(1));
chickenLogs.setChickenId(cursor.getInt(2));
chickenLogs.setDatetime(cursor.getString(3));
chickenLogs.setWeight(cursor.getFloat(4));
chickenLogs.setEggs(cursor.getInt(5));
chickenLogs.setGrain(cursor.getFloat(6));
chickenLogs.setWater(cursor.getFloat(7));
log.add(chickenLogs);
}
return log;
}
并且对于发送电子邮件,我使用的是mainActivity的asyncTask,问题是如何在数据库中显示数据库的内容 电子邮件的正文。我真的很感激,如果有人可以帮我解决这个问题。
private class BackgroundTask extends AsyncTask<Void, Void, ArrayList<ChickenLogs>> {
private ProgressDialog dialog;
public BackgroundTask(MainActivity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Doing something, please wait.");
dialog.show();
}
@Override
protected void onPostExecute(ArrayList<ChickenLogs> result) {
if (dialog.isShowing()) {
dialog.dismiss();
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setData(Uri.parse("mailto:"));
String[] to = {"er.aamanarora@gmail.com"};
intent.putExtra(Intent.EXTRA_EMAIL, to);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_SUBJECT, "mSubject.getText().toString()");
if(result !=null) {
intent.putExtra(Intent.EXTRA_STREAM, result);
}
final PackageManager pm = getPackageManager();
final List<ResolveInfo> matches = pm.queryIntentActivities(intent,0);
ResolveInfo best = null;
for(final ResolveInfo info : matches)
if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail"))
best = info;
if (best != null)
intent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
startActivity(intent);
}
}
@Override
protected ArrayList<ChickenLogs> doInBackground(Void... params) {
try {
detailList= chickLogDAO.getData();
Log.i("retData", String.valueOf(detailList));
// return from detailList is of form [com.example.chickenlogs.utils.chickenlogs@24e59dd3]
} catch (Exception e) {
e.printStackTrace();
}
return detailList;
}
}
答案 0 :(得分:0)
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, body);