如何通过电子邮件发送sqliteDatabase数据,并将其显示在电子邮件正文中?

时间:2016-09-26 18:52:11

标签: email android-sqlite

enter image description here

我创建了一个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;
        }

    }

1 个答案:

答案 0 :(得分:0)

intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, body);