2016-01-16 111 views

回答

1

我只是在這裏做了非常類似的事情。

private File saveResults() { 
    /* 
    * Write the results to a file. 
    */ 
    List<RiderResult> Results = DataModel.get().getResults(); 

    try { 
     if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { 
      Toast.makeText(SummaryFragment.this.getContext(), "Unable to access external storage.", 
        Toast.LENGTH_SHORT).show(); 
      return null; 
     } 

     /* 
     * Create a file folder in external storage. 
     */ 
     File csvDir = new File(
       Environment.getExternalStorageDirectory(), 
       "Android/data/ca.mydomain.myapp/results"); 
     if (!csvDir.exists()) 
      csvDir.mkdirs(); 

     /* 
     * Create a file in the folder, with today's date and time as the name. 
     */ 
     Date dateNow = new Date(); 
     SimpleDateFormat dateformatYYYYMMDD = new SimpleDateFormat("yyyyMMddHHmm"); 
     StringBuilder nowMMDDYYYY = new StringBuilder(dateformatYYYYMMDD.format(dateNow)); 

     File csvFile = new File(csvDir, "result_" + nowMMDDYYYY + ".csv"); 

     BufferedWriter bw = new BufferedWriter(new FileWriter(csvFile, false)); 

     /* 
     * Write a header row. 
     */ 
     bw.write("Finish Seq, Start Num,Clock Time, Actual Time\n"); 

     /* 
     * and a row for each result, comma separated 
     */ 
     for (int i = 0; i < Results.size(); i++) { 
      String row = new String(); 
      row = "" + (i + 1) + "," + Results.get(i).getStartNo() 
        + "," + Results.get(i).getClockTimeString() + "," 
        + Results.get(i).getActualTimeString() +"\n"; 
      bw.write(row); 
     } 

     bw.close(); 



     /* 
     * Return the File to the user - for use in a message or email attachment. 
     */ 
     return csvFile; 

    } catch (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

我正在寫一個文件,我稍後將其附加到電子郵件或通過藍牙發送,或者將它留在文件上。我的文件是CSV(競賽結果),並生成文件的名稱。但你可以適應你的使用。

+0

謝謝,但DataModel在列表中代表什麼結果= DataModel.get()。getResults(); –

+0

在我的情況下,DataModel是一個單例,我跟蹤我的選項卡的狀態並收集結果。但是您的數據將有不同的來源:數據庫。 我只用於我的代碼來幫助創建和編寫文件。 我還應該提一下,我的清單必須請求寫入SD卡的權限。 – BryanT

+0

是的,謝謝,我只是想知道它是否會對我有任何用處。 –