Android初学第53天

14_LocalDatabases

代码

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.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 List<Crime> getCrimes() {List<Crime> 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 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 columnswhereClause,whereArgs,null, // groupBynull, // havingnull  // 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);return values;}}

转载于:https://www.cnblogs.com/zhouheng0918/p/9215063.html

Android初学第53天相关推荐

  1. Android初学第36天

    Android初学第36天 12_DateDialog 代码 CrimeLab.java package com.bignerdranch.android.criminalintent;import ...

  2. Android初学第29天

    Android初学第29天 11_ViewPaper 代码 CrimeFragment.java package com.bignerdranch.android.criminalintent;imp ...

  3. Android初学第34天

    Android初学第34天 12_DateDialog 代码 Crime.java package com.bignerdranch.android.criminalintent;import jav ...

  4. Android初学第86天

    Android初学第86天 25_HTTPBackgroundTasks 代码 PhotoGallery GalleryItem.java package com.bignerdranch.andro ...

  5. Android初学第21天

    Android初学第21天 09_LayoutsAndWidgets 代码 SignleFragmentActivity.java package com.bignerdranch.android.c ...

  6. Android初学第55天

    Android初学第55天 14_LocalDatabases 代码 Criminalintent CrimePagerActivity.java package com.bignerdranch.a ...

  7. Android初学第87天

    Android初学第87天 25_HTTPBackgroundTasks 代码 PhotoGallery SingleFragmentActivity.java package com.bignerd ...

  8. 云炬Android开发笔记 5-3,4Restful请求的处理

    2.Restful请求的处理-框架 [说明]首先要考虑网络请求的参数(url传入的值.文件.回调.及loder加载圈) [说明]使用建造者模式,将建造者类和宿主类分开: 2.1[新建建造者类] 2.2 ...

  9. Android初学:联系创建Activity

    public class Activity2 extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) ...

最新文章

  1. mysql a-z排序_mysql实现首字母从A-Z排序
  2. kali burpsuite 安装与使用
  3. c语言27除以4,2014计算机等级二级C语言精讲习题及答案 4
  4. 分布式缓存Redis介绍
  5. mysql数据库div函数_关于使用mysql中的div函数报错?报错-问答-阿里云开发者社区-阿里云...
  6. 操作系统上机题目(多进程2)
  7. php2个数字拼接,PHP合并2个数字键数组值示例详解
  8. java时间格式转换_Java时间日期格式转换
  9. DirectX9.03D Direct3D初始化
  10. 【手把手教你】使用qstock实现量化策略选股
  11. 自然人股东分红必须要缴纳20%个税吗?有三种真不用
  12. Kafka序列化器,分区器,拦截器,消息累加器
  13. vs各个版本的编译器号对应的vs版本号
  14. 万象优鲜生鲜配送系统源码 团队开发
  15. storm风暴英雄 tempo_迎接《风暴英雄》世界锦标赛季中大乱斗
  16. SVN+Google Code 安装使用详解
  17. 耶稣13门徒c语言算法,【C语言】耶稣门徒问题求解——谁是叛徒
  18. 自适应音频电压放大器
  19. 黑莓合约价格:电信 BlackBerry 9930
  20. python可视化爬虫实现“京东试用”批量申请

热门文章

  1. 机器学习(1)之梯度下降(gradient descent)
  2. 【opencv学习】【运动物体检测】
  3. 安装oracle未生成tnsnames.ora文件
  4. 谷歌浏览器设置定位_Chrome如何设置允许所有网站跟踪我的地理位置
  5. pad_sequences序列预处理
  6. 解决Pycharm中import时无法识别自己写的程序(转载)
  7. Opencv---remap函数的实现
  8. 深拷贝与浅拷贝的区别
  9. 早高峰共享单车潮汐点的群智优化(想法)
  10. 一个简单的PHP购物车系统