Android初学第53天
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天相关推荐
- Android初学第36天
Android初学第36天 12_DateDialog 代码 CrimeLab.java package com.bignerdranch.android.criminalintent;import ...
- Android初学第29天
Android初学第29天 11_ViewPaper 代码 CrimeFragment.java package com.bignerdranch.android.criminalintent;imp ...
- Android初学第34天
Android初学第34天 12_DateDialog 代码 Crime.java package com.bignerdranch.android.criminalintent;import jav ...
- Android初学第86天
Android初学第86天 25_HTTPBackgroundTasks 代码 PhotoGallery GalleryItem.java package com.bignerdranch.andro ...
- Android初学第21天
Android初学第21天 09_LayoutsAndWidgets 代码 SignleFragmentActivity.java package com.bignerdranch.android.c ...
- Android初学第55天
Android初学第55天 14_LocalDatabases 代码 Criminalintent CrimePagerActivity.java package com.bignerdranch.a ...
- Android初学第87天
Android初学第87天 25_HTTPBackgroundTasks 代码 PhotoGallery SingleFragmentActivity.java package com.bignerd ...
- 云炬Android开发笔记 5-3,4Restful请求的处理
2.Restful请求的处理-框架 [说明]首先要考虑网络请求的参数(url传入的值.文件.回调.及loder加载圈) [说明]使用建造者模式,将建造者类和宿主类分开: 2.1[新建建造者类] 2.2 ...
- Android初学:联系创建Activity
public class Activity2 extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) ...
最新文章
- mysql a-z排序_mysql实现首字母从A-Z排序
- kali burpsuite 安装与使用
- c语言27除以4,2014计算机等级二级C语言精讲习题及答案 4
- 分布式缓存Redis介绍
- mysql数据库div函数_关于使用mysql中的div函数报错?报错-问答-阿里云开发者社区-阿里云...
- 操作系统上机题目(多进程2)
- php2个数字拼接,PHP合并2个数字键数组值示例详解
- java时间格式转换_Java时间日期格式转换
- DirectX9.03D Direct3D初始化
- 【手把手教你】使用qstock实现量化策略选股
- 自然人股东分红必须要缴纳20%个税吗?有三种真不用
- Kafka序列化器,分区器,拦截器,消息累加器
- vs各个版本的编译器号对应的vs版本号
- 万象优鲜生鲜配送系统源码 团队开发
- storm风暴英雄 tempo_迎接《风暴英雄》世界锦标赛季中大乱斗
- SVN+Google Code 安装使用详解
- 耶稣13门徒c语言算法,【C语言】耶稣门徒问题求解——谁是叛徒
- 自适应音频电压放大器
- 黑莓合约价格:电信 BlackBerry 9930
- python可视化爬虫实现“京东试用”批量申请