2016-09-26 12 views
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; 
     } 

    } 

答えて

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

このコードは、問題を解決するのに役立つかもしれないが、それは質問に答える_why_を説明し、および/または_how_しません。この追加の文脈を提供することは、長期的な教育的価値を大幅に改善するだろう。どのような制限や仮定が適用されるかなど、あなたの答えを解説してください。 –

関連する問題