Android初学第73天
16_CameraIntent
代码
Criminalintent
CrimeLab.java
package com.bignerdranch.android.criminalintent;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.bignerdranch.android.criminalintent.database.CrimeBaseHelper;import com.bignerdranch.android.criminalintent.database.CrimeCursorWrapper;import com.bignerdranch.android.criminalintent.database.CrimeDbSchema;import com.bignerdranch.android.criminalintent.database.CrimeDbSchema.CrimeTable;import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.UUID;import static com.bignerdranch.android.criminalintent.database.CrimeDbSchema.CrimeTable.*;import static com.bignerdranch.android.criminalintent.database.CrimeDbSchema.CrimeTable.Cols.*;public class CrimeLab { private static CrimeLab sCrimeLab; private Context mContext; private SQLiteDatabase mDatabase; public static CrimeLab get(Context context) { if (sCrimeLab == null) { sCrimeLab = new CrimeLab(context); } return sCrimeLab; } private CrimeLab(Context context) { mContext = context.getApplicationContext(); mDatabase = new CrimeBaseHelper(mContext) .getWritableDatabase(); } public void addCrime(Crime c) { ContentValues values = getContentValues(c); mDatabase.insert(CrimeTable.NAME, null, values); } public ListgetCrimes() { List crimes = new ArrayList<>(); CrimeCursorWrapper cursor = queryCrimes(null, null); try { cursor.moveToFirst(); while (!cursor.isAfterLast()) { crimes.add(cursor.getCrime()); cursor.moveToNext(); } } finally { cursor.close(); } return crimes; } public Crime getCrime(UUID id) { CrimeCursorWrapper cursor = queryCrimes( CrimeTable.Cols.UUID + " = ?", new String[]{id.toString()} ); try { if (cursor.getCount() == 0) { return null; } cursor.moveToFirst(); return cursor.getCrime(); } finally { cursor.close(); } } public File getPhotoFile(Crime crime) { File filesDir = mContext.getFilesDir(); return new File(filesDir, crime.getPhotoFilename()); } public void updateCrime(Crime crime) { String uuidString = crime.getId().toString(); ContentValues values = getContentValues(crime); mDatabase.update(CrimeTable.NAME, values, CrimeTable.Cols.UUID + " = ?", new String[]{uuidString}); } private CrimeCursorWrapper queryCrimes(String whereClause, String[] whereArgs) { Cursor cursor = mDatabase.query( CrimeTable.NAME, null, // Columns - null selects all columns whereClause, whereArgs, null, // groupBy null, // having null // orderBy ); return new CrimeCursorWrapper(cursor); } private static ContentValues getContentValues(Crime crime) { ContentValues values = new ContentValues(); values.put(UUID, crime.getId().toString()); values.put(TITLE, crime.getTitle()); values.put(DATE, crime.getDate().getTime()); values.put(SOLVED, crime.isSolved() ? 1 : 0); values.put(CrimeTable.Cols.SUSPECT, crime.getSuspect()); return values; }}