版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
玩转SQLite系列SQLite数据库应用案例实现历史搜索记录一.编写一个历史搜索记录实例对象packagecn.bluemobi.dylan.sqlite;importjava.util.Date;/***搜索记录的操作对象*CreatedbyAdministratoron2016-11-20.*/publicclassHistory{/***id主键,自增*/privateintid;/***搜索的内容*/privateStringcontent;/***搜索的时间*/privateStringtime;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetContent(){returncontent;}publicvoidsetContent(Stringcontent){this.content=content;}publicStringgetTime(){returntime;}publicvoidsetTime(Stringtime){this.time=time;}}二.编写一个操作数据库的管理工具类packagecn.bluemobi.dylan.sqlite;importandroid.content.ContentValues;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.os.Environment;importjava.io.File;importjava.util.ArrayList;importjava.util.List;/***数据库操作管理类*CreatedbyAdministratoron2016-11-19.*/publicclassDBManager{privatestaticvolatileDBManagerdbManager;privateSQLiteDatabasesqLiteDatabase;privateDBManager(){openDataBase();createTable();}publicstaticDBManagergetDBManager(){if(dbManager==null){synchronized(DBManager.class){if(dbManager==null){dbManager=newDBManager();}}}returndbManager;}/***数据库名称*/privatefinalStringDATABASE_NAME="info.db";/***表名*/privatefinalStringTABLE_NAME="history";/***表格所包含的字段*/privateclassHistoryDbColumn{/***字段一id*/publicstaticfinalStringID="id";/***字段二内容*/publicstaticfinalStringCONTENT="name";/***字段三时间*/publicstaticfinalStringTIME="time";}/***1.创建或打开数据库连接**/privatevoidopenDataBase(){FiledataBaseFile=newFile(Environment.getExternalStorageDirectory()+"/sqlite",DATABASE_NAME);if(!dataBaseFile.getParentFile().exists()){dataBaseFile.mkdirs();}sqLiteDatabase=SQLiteDatabase.openOrCreateDatabase(dataBaseFile,null);}/*****2.创建表*/privatevoidcreateTable(){Stringsql="CREATETABLE"+"IFNOTEXISTS"+TABLE_NAME+"("+HistoryDbColumn.ID+"IntegerPRIMARYKEYAUTOINCREMENT,"+HistoryDbColumn.CONTENT+"varchar,"+HistoryDbColumn.TIME+"datetime)";sqLiteDatabase.execSQL(sql);}/***插入一条数据**@paramhistory*@return*/publiclonginsert(Historyhistory){ContentValuescontentValues=newContentValues();contentValues.put(HistoryDbColumn.CONTENT,history.getContent());contentValues.put(HistoryDbColumn.TIME,history.getTime());longnum=sqLiteDatabase.insert(TABLE_NAME,null,contentValues);returnnum;}/***根据id删除一条数据**@paramid*@return*/publiclongdelete(intid){longnum=sqLiteDatabase.delete(TABLE_NAME,HistoryDbColumn.ID+"=?",newString[]{String.valueOf(id)});returnnum;}/***根据id修改一条数据**@paramid*@return*/publiclongupdate(Historyhistory,intid){ContentValuescontentValues=newContentValues();contentValues.put(HistoryDbColumn.CONTENT,history.getContent());contentValues.put(HistoryDbColumn.TIME,history.getTime());longnum=sqLiteDatabase.update(TABLE_NAME,contentValues,HistoryDbColumn.ID+"=?",newString[]{String.valueOf(id)});returnnum;}/***根据id查询一条数据**@paramid*@return*/publicHistoryqurey(intid){Historyhistory=null;Cursorcursor=sqLiteDatabase.query(TABLE_NAME,null,HistoryDbColumn.ID+"=?",newString[]{String.valueOf(id)},null,null,null);if(cursor!=null){if(cursor.moveToNext()){history=newHistory();history.setId(cursor.getInt(cursor.getColumnIndex(HistoryDbColumn.ID)));history.setContent(cursor.getString(cursor.getColumnIndex(HistoryDbColumn.CONTENT)));history.setTime(cursor.getString(cursor.getColumnIndex(HistoryDbColumn.TIME)));}}returnhistory;}/***根据id查询一条数据*倒序**@return*/publicList<History>queryAll(){List<History>historys=newArrayList<>();Cursorcursor=sqLiteDatabase.query(TABLE_NAME,null,null,null,null,null,HistoryDbColumn.TIME+"desc");if(cursor!=null){while(cursor.moveToNext()){Historyhistory=newHistory();history.setId(cursor.getInt(cursor.getColumnIndex(HistoryDbColumn.ID)));history.setContent(cursor.getString(cursor.getColumnIndex(HistoryDbColumn.CONTENT)));history.setTime(cursor.getString(cursor.getColumnIndex(HistoryDbColumn.TIME)));historys.add(history);}}returnhistorys;}/***根据内容查询一条数据**@return*/publicHistoryqueryByContent(Stringcontent){Historyhistory=null;Cursorcursor=sqLiteDatabase.query(TABLE_NAME,null,HistoryDbColumn.CONTENT+"=?",newString[]{content},null,null,null);if(cursor!=null){if(cursor.moveToNext()){history=newHistory();history.setId(cursor.getInt(cursor.getColumnIndex(HistoryDbColumn.ID)));history.setContent(cursor.getString(cursor.getColumnIndex(HistoryDbColumn.CONTENT)));history.setTime(cursor.getString(cursor.getColumnIndex(HistoryDbColumn.TIME)));}}returnhistory;}}三.搜索对话框的布局文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:minHeight="250dp"android:orientation="vertical"><cn.bluemobi.dylan.sqlite.SearchViewandroid:id="@+id/sv"android:padding="10dp"android:background="@color/colorPrimaryDark"android:layout_width="match_parent"android:layout_height="wrap_content"></cn.bluemobi.dylan.sqlite.SearchView><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"></ListView><TextViewandroid:id="@+id/tv"android:layout_gravity="center"android:gravity="center"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="match_parent"android:text="暂无搜索记录"/></LinearLayout>四.编写功能代码packagecn.bluemobi.dylan.sqlite;importandroid.app.Dialog;importandroid.os.Bundle;importandroid.support.annotation.Nullable;importandroid.support.v7.app.AppCompatActivity;importandroid.util.Log;importandroid.view.Gravity;importandroid.view.View;importandroid.view.WindowManager;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ListView;importandroid.widget.TextView;importandroid.widget.Toast;importjava.util.Date;importjava.util.List;importcn.bluemobi.dylan.sqlite.adapter.CommonAdapter;importcn.bluemobi.dylan.sqlite.adapter.CommonViewHolder;/***SQLite应用案例实现搜索记录*CreatedbyAdministratoron2016-11-20.*/publicclassSearchActivityextendsAppCompatActivityimplementsView.OnClickListener{privateEditTextet;privateListViewlv;privateTextViewtv;privateDialogdialog;privateSearchViewsv;privateButtonbt;privateList<History>histories;privateCommonAdapter<History>commonAdapter;privatefinalintMAX_ITME=5;privatevoidassignViews(){et=(EditText)findViewById(R.id.et);}@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);getSupportActionBar().setTitle("SQLite应用案例实现搜索记录");setContentView(R.layout.ac_search);assignViews();intiDialog();addListener();initData();}/***添加按钮监听*/privatevoidaddListener(){et.setOnClickListener(this);}/****初始化搜索对话框*/privatevoidintiDialog(){dialog=newDialog(this,R.style.Dialog_FullScreen);dialog.setContentView(R.layout.dialog_search);dialog.getWindow().setGravity(Gravity.TOP);dialog.setCanceledOnTouchOutside(true);dialog.setCancelable(true);WindowManager.LayoutParamslp=dialog.getWindow().getAttributes();lp.width=WindowManager.LayoutParams.MATCH_PARENT;lp.height=WindowManager.LayoutParams.WRAP_CONTENT;dialog.getWindow().setAttributes(lp);lv=(ListView)dialog.findViewById(R.id.lv);tv=(TextView)dialog.findViewById(R.id.tv);sv=(SearchView)dialog.findViewById(R.id.sv);bt=(Button)dialog.findViewById(R.id.bt);bt.setOnClickListener(this);lv.setEmptyView(tv);}/***初始化数据*/privatevoidinitData(){commonAdapter=newCommonAdapter<History>(this,histories,R.layout.item_for_search){@OverrideprotectedvoidconvertView(CommonViewHoldercommonViewHolder,Historyhistory){TextViewtv=commonViewHolder.get(R.id.textView);tv.setText(history.getContent());}};lv.setAdapter(commonAdapter);notifyAdapter();}@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.et:if(!dialog.isShowing()){dialog.show();}break;caseR.id.bt:addHistory();break;}}/***点击搜索按钮新增一条记录*/privatevoidaddHistory(){StringinputText=sv.getInputText();if(inputText.isEmpty()){Toast.makeText(this,"请输入内容进行搜索",Toast.LENGTH_SHORT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2029年中国改装汽车制造行业市场需求预测与投资战略规划分析报告
- 单位管理制度收录大全【职员管理】十篇
- 牛顿运动定律复习课件
- 中国理发及美容保健服务行业分析报告
- 实体经济图谱2025年第1期:重卡销量同比转正
- 中国青霉素Ⅴ钾行业市场发展现状及投资规划建议报告
- 2024-2027年中国产品研发类工业软件市场全景评估及投资规划建议报告
- 无纺布生产线项目可行性研究报告建议书
- 麻混纺纱项目可行性研究报告-20241226-062826
- 黑滑石粉体深加工建议书可行性研究报告备案
- 《个案工作介入涉罪未成年人的家庭帮教研究》
- 2024年中学总务处工作总结
- 统编版(2024新版)七年级上册道德与法治期末综合测试卷(含答案)
- 文化创意合作战略协议
- 国家开放大学法学本科《商法》历年期末考试试题及答案题库
- 2023年黑龙江日报报业集团招聘工作人员考试真题
- 安全管理人员安全培训教材
- 2024年妇保科工作总结及计划
- 北京理工大学《数据结构与算法设计》2022-2023学年第一学期期末试卷
- 锚杆(索)支护工技能理论考试题库200题(含答案)
- 污水管网技术标
评论
0/150
提交评论