# é¯èª¤ä¿®æ£ï¼4-1 使ç¨ç §ç¸æ©è麥å 風 éä¸ç« å å ¥çç §ç¸èéé³åè½ï¼æç §çèé鳿ªæ¡å稱å²åå¨åä¸åæ¬ä½ãå¨å®æéä¸ç« çå §å®¹å¾ä¾ç §ä¸åçæ¥é©ä¿®æ£é¯èª¤ï¼ 1. éåãItem.javaãï¼å å ¥ä¸åçæ¬ä½èæ¹æ³å®£åï¼ // é鳿ªæ¡å稱 private String recFileName; public String getRecFileName() { return recFileName; } public void setRecFileName(String recFileName) { this.recFileName = recFileName; } 2. 忍£å¨ãItem.javaãï¼çºå»ºæ§åå å ¥é鳿ªæ¡åç¨±åæ¸ï¼ // é鳿ªæ¡åç¨±åæ¸ï¼String recFileName public Item(long id, long datetime, Colors color, String title, String content, String fileName, String recFileName, double latitude, double longitude, long lastModify) { this.id = id; this.datetime = datetime; this.color = color; this.title = title; this.content = content; this.fileName = fileName; // é鳿ªæ¡å稱 this.recFileName = recFileName; this.latitude = latitude; this.longitude = longitude; this.lastModify = lastModify; } 3. éåãItemDAO.javaãï¼å å ¥èä¿®æ¹ä¸åçæ¬ä½å®£åï¼ ... // é鳿ªæ¡å稱 public static final String RECFILENAME_COLUMN = "recfilename"; ... // å¨ãFILENAME_COLUMNã䏿¹å å ¥é鳿ªæ¡å稱æ¬ä½ public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + ... FILENAME_COLUMN + " TEXT, " + RECFILENAME_COLUMN + " TEXT, " + // å¢å é鳿ªæ¡å稱 ..."; 4. 忍£å¨ãItemDAO.javaãï¼ä¿®æ¹ãinsertãæ¹æ³ï¼ public Item insert(Item item) { ContentValues cv = new ContentValues(); ... cv.put(FILENAME_COLUMN, item.getFileName()); // é鳿ªæ¡å稱 cv.put(RECFILENAME_COLUMN, item.getRecFileName()); ... } 5. 忍£å¨ãItemDAO.javaãï¼ä¿®æ¹ãupdateãæ¹æ³ï¼ public boolean update(Item item) { ContentValues cv = new ContentValues(); ... cv.put(FILENAME_COLUMN, item.getFileName()); // é鳿ªæ¡å稱 cv.put(RECFILENAME_COLUMN, item.getRecFileName()); ... } 6. 忍£å¨ãItemDAO.javaãï¼ä¿®æ¹ãgetRecordãæ¹æ³ï¼ public Item getRecord(Cursor cursor) { ... result.setFileName(cursor.getString(5)); // é鳿ªæ¡å稱 result.setRecFileName(cursor.getString(6)); // å¾çºçç·¨èé½è¦å ä¸ result.setLatitude(cursor.getDouble(7)); ... } 7. 忍£å¨ãItemDAO.javaãï¼ä¿®æ¹ãsampleãæ¹æ³ï¼ public void sample() { // å¢å é鳿ªæ¡åç¨±åæ¸ã""ã Item item = new Item(0, new Date().getTime(), Colors.RED, "éæ¼Android Tutorialçäºæ .", "Hello content", "", "", 0, 0, 0); Item item2 = new Item(0, new Date().getTime(), Colors.BLUE, "ä¸é»é叏坿çå°çç!", "她çååå«ã大ç±çãï¼åå«\nä½ã奶å´ãï¼æ¯ä¸é»é叏坿\nçå°çã", "", "", 25.04719, 121.516981, 0); Item item3 = new Item(0, new Date().getTime(), Colors.GREEN, "ä¸é¦é常好è½ç鳿¨ï¼", "Hello content", "", "", 0, 0, 0); Item item4 = new Item(0, new Date().getTime(), Colors.ORANGE, "å²åå¨è³æåº«çè³æ", "Hello content", "", "", 0, 0, 0); ... } 8. éåãMyDBHelper.javaãï¼å¢å è³æåº«çæ¬ç·¨èï¼ // è³æåº«çæ¬ï¼è³æçµæ§æ¹è®çæåè¦æ´æ¹é忏åï¼é常æ¯å ä¸ public static final int VERSION = 2; 9. éåãItemActivity.javaãï¼å¢å é鳿ªæ¡å稱æ¬ä½è®æ¸ï¼ // é鳿ªæ¡å稱 private String recFileName; 10. 忍£å¨ãItemActivity.javaãï¼å¢å åå¾é鳿ªæ¡åç¨±çæ¹æ³ï¼ private File configRecFileName(String prefix, String extension) { // 妿è¨äºè³æå·²ç¶ææªæ¡å稱 if (item.getRecFileName() != null && item.getRecFileName().length() > 0) { recFileName = item.getRecFileName(); } // ç¢çæªæ¡å稱 else { recFileName = FileUtil.getUniqueFileName(); } return new File(FileUtil.getExternalStorageDir(FileUtil.APP_DIR), prefix + recFileName + extension); } 11. 忍£å¨ãItemActivity.javaãï¼ä¿®æ¹ååéé³å ä»¶çæ¹æ³ï¼ public void clickFunction(View view) { int id = view.getId(); switch (id) { ... case R.id.record_sound: // ä¿®æ¹å¼å«æ¹æ³çå稱çºãconfigRecFileNameã final File recordFile = configRecFileName("R", ".mp3"); if (recordFile.exists()) { ... } // å¦ææ²æé鳿ªï¼ååéé³å ä»¶ else { goToRecord(recordFile); } break; ... } } 12. 忍£å¨ãItemActivity.javaãï¼æ¾å°ãonActivityResultãæ¹æ³ï¼ä¿®æ¹è¨å®é鳿ªæ¡å稱å¼å«çæ¹æ³ï¼ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { ... case START_RECORD: // ä¿®æ¹è¨å®é鳿ªæ¡å稱 item.setRecFileName(recFileName); break; ... } } } å®æå ¨é¨çä¿®æ¹ä»¥å¾å·è¡æç¨ç¨å¼ï¼æ¸¬è©¦åä¸åè¨äºè³æç §ç¸èéé³çåè½ã