0
enter image description heresqliteDatabaseデータを電子メールで送信し、電子メールの本文に表示する方法は?
私は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を使用しています、ただ問題は、どのように 体にデータベースの内容を表示することです - :sqliteのデータベースからデータを取得するための私のコードがありますEメール。もし誰かが私を助けてくれたら本当に感謝しています。
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 = {"[email protected]"};
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 [[email protected]]
} catch (Exception e) {
e.printStackTrace();
}
return detailList;
}
}
このコードは、問題を解決するのに役立つかもしれないが、それは質問に答える_why_を説明し、および/または_how_しません。この追加の文脈を提供することは、長期的な教育的価値を大幅に改善するだろう。どのような制限や仮定が適用されるかなど、あなたの答えを解説してください。 –