基于Andriod平台的安卓记事本程序源码.docx
- 文档编号:7708584
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:24
- 大小:20.39KB
基于Andriod平台的安卓记事本程序源码.docx
《基于Andriod平台的安卓记事本程序源码.docx》由会员分享,可在线阅读,更多相关《基于Andriod平台的安卓记事本程序源码.docx(24页珍藏版)》请在冰豆网上搜索。
基于Andriod平台的安卓记事本程序源码
DatabaseHelper.java
packagecom.notepad.namespace;
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
importandroid.database.sqlite.SQLiteOpenHelper;
publicclassDatabaseHelperextendsSQLiteOpenHelper{
privateStringtableName="record";
privateContextmContext=null;
privateStringsql="createtableifnotexists"+tableName+
"(_idintegerprimarykeyautoincrement,"+
"titlevarchar,"+
"contenttext,"+
"timevarchar)";
publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,
intversion){
super(context,name,factory,version);
//TODOAuto-generatedconstructorstub
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//TODOAuto-generatedmethodstub
//创建表
db.execSQL(sql);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
//TODOAuto-generatedmethodstub
}
}
DatabaseManage.java
packagecom.notepad.namespace;
importjava.util.Date;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteException;
importandroid.util.Log;
publicclassDatabaseManage{
privateContextmContext=null;
privateSQLiteDatabasemSQLiteDatabase=null;//用于操作数据库的对象
privateDatabaseHelperdh=null;//用于创建数据库的对象
privateStringdbName="notepad.db";
privateintdbVersion=1;
publicDatabaseManage(Contextcontext){
mContext=context;
}
/**
*打开数据库
*/
publicvoidopen(){
try{
dh=newDatabaseHelper(mContext,dbName,null,dbVersion);
if(dh==null){
Log.v("msg","isnull");
return;
}
mSQLiteDatabase=dh.getWritableDatabase();
//dh.onOpen(mSQLiteDatabase);
}catch(SQLiteExceptionse){
se.printStackTrace();
}
}
/**
*关闭数据库
*/
publicvoidclose(){
mSQLiteDatabase.close();
dh.close();
}
//获取列表
publicCursorselectAll(){
Cursorcursor=null;
try{
Stringsql="select*fromrecord";
cursor=mSQLiteDatabase.rawQuery(sql,null);
}catch(Exceptionex){
ex.printStackTrace();
cursor=null;
}
returncursor;
}
publicCursorselectById(intid){
//Stringresult[]={};
Cursorcursor=null;
try{
Stringsql="select*fromrecordwhere_id='"+id+"'";
cursor=mSQLiteDatabase.rawQuery(sql,null);
}catch(Exceptionex){
ex.printStackTrace();
cursor=null;
}
returncursor;
}
//插入数据
publiclonginsert(Stringtitle,Stringcontent){
longdatetime=System.currentTimeMillis();
longl=-1;
try{
ContentValuescv=newContentValues();
cv.put("title",title);
cv.put("content",content);
cv.put("time",datetime);
l=mSQLiteDatabase.insert("record",null,cv);
//Log.v("datetime",datetime+""+l);
}catch(Exceptionex){
ex.printStackTrace();
l=-1;
}
returnl;
}
//删除数据
publicintdelete(longid){
intaffect=0;
try{
affect=mSQLiteDatabase.delete("record","_id=?
",newString[]{id+""});
}catch(Exceptionex){
ex.printStackTrace();
affect=-1;
}
returnaffect;
}
//修改数据
publicintupdate(intid,Stringtitle,Stringcontent){
intaffect=0;
try{
ContentValuescv=newContentValues();
cv.put("title",title);
cv.put("content",content);
Stringw[]={id+""};
affect=mSQLiteDatabase.update("record",cv,"_id=?
",w);
}catch(Exceptionex){
ex.printStackTrace();
affect=-1;
}
returnaffect;
}
}
ListViewAdapter.java
packagecom.notepad.namespace;
importjava.util.HashMap;
importjava.util.List;
importandroid.content.Context;
importandroid.text.format.DateFormat;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.BaseAdapter;
importandroid.widget.TextView;
publicclassListViewAdapterextendsBaseAdapter{
privateList
privateList
//privateHashMap
privateLayoutInflaterinflater;
publicListViewAdapter(Contextcontext,List
this.listItems=listItems;
this.listItemTimes=times;
inflater=(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
/**
*往列表添加条目
*@paramitem
*/
publicvoidaddListItem(Stringitem,Stringtime){
listItems.add(item);
listItemTimes.add(time);
}
/**
*删除指定位置的数据
*@paramposition
*/
publicvoidremoveListItem(intposition){
listItems.remove(position);
listItemTimes.remove(position);
}
/**
*获取列表的数量
*/
publicintgetCount(){
//TODOAuto-generatedmethodstub
returnlistItems.size();
}
/**
*根据索引获取列表对应索引的内容
*/
publicObjectgetItem(intposition){
//TODOAuto-generatedmethodstub
returnlistItems.get(position);
}
publiclonggetItemId(intposition){
//TODOAuto-generatedmethodstub
returnposition;
}
/**
*通过该函数显示数据
*/
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
//TODOAuto-generatedmethodstub
if(convertView==null){
convertView=inflater.inflate(R.layout.notepad_list_item,null);
}
TextViewtext=(TextView)convertView.findViewById(R.id.listItem);
text.setText(listItems.get(position));
TextViewtime=(TextView)convertView.findViewById(R.id.listItemTime);
Stringdatetime=DateFormat.format("yyyy-MM-ddkk:
mm:
ss",
Long.parseLong(listItemTimes.get(position))).toString();
time.setText(datetime);
returnconvertView;
}
}
NotepadActivity.java
packagecom.notepad.namespace;
importjava.util.ArrayList;
importjava.util.HashMap;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.ListActivity;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.database.Cursor;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.ContextMenu;
importandroid.view.ContextMenu.ContextMenuInfo;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnCreateContextMenuListener;
importandroid.widget.AbsListView;
importandroid.widget.AbsListView.OnScrollListener;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemClickListener;
importandroid.widget.Button;
importandroid.widget.ListView;
publicclassNotepadActivityextendsListActivityimplementsOnScrollListener{
/**Calledwhentheactivityisfirstcreated.*/
//用于表示当前界面是属于哪种状态
publicstaticfinalintCHECK_STATE=0;
publicstaticfinalintEDIT_STATE=1;
publicstaticfinalintALERT_STATE=2;
privateListViewlistView;
privateListViewAdapteradapter;//数据源对象
privateViewRecordView;///列表布局
privateViewlongClickView;///长按弹出的布局
privateButtonaddRecordButton;//新增
privateButtondeleteRecordButton;//删除
privateButtoncheckRecordButton;//查看
privateButtonmodifyRecordButton;//修改
privateDatabaseManagedm=null;//数据库管理对象
privateCursorcursor=null;
privateintid=-1;//被点击的条目
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
RecordView=getLayoutInflater()
.inflate(R.layout.footer,null);//获取条目列表的布局
longClickView=getLayoutInflater()
.inflate(R.layout.long_click,null);
//获取按钮对象
addRecordButton=(Button)
RecordView.findViewById(R.id.addRecordButton);
deleteRecordButton=(Button)
longClickView.findViewById(R.id.deleteRecordButton);
checkRecordButton=(Button)
longClickView.findViewById(R.id.checkRecordButton);
modifyRecordButton=(Button)
longClickView.findViewById(R.id.modifyRecordButton);
dm=newDatabaseManage(this);//数据库操作对象
listView=getListView();//获取id为list的对象
listView.addFooterView(RecordView);//设置列表底部视图
initAdapter();//初始化
//this.startManagingCursor(cursor);//将cursor交给Activity管理
setListAdapter(adapter);//自动为id为list的ListView设置适配器
//设置滑动监听器
listView.setOnScrollListener(this);
listView.setOnCreateContextMenuListener(newmyOnCreateContextMenuListener());
//设置按钮监听器
addRecordButton.setOnClickListener(newAddRecordListener());//新增
deleteRecordButton.setOnClickListener(newDeleteRecordListener());//删除
checkRecordButton.setOnClickListener(newCheckRecordListener());//查看
modifyRecordButton.setOnClickListener(newModifyRecordListener());//修改
}
//初始化数据源
publicvoidinitAdapter(){
dm.open();//打开数据库操作对象
cursor=dm.selectAll();//获取所有数据
cursor.moveToFirst();//将游标移动到第一条数据,使用前必须调用
intcount=cursor.getCount();//个数
ArrayList
ArrayList
for(inti=0;i items.add(cursor.getString(cursor.getColumnIndex("title"))); times.add(cursor.getString(cursor.getColumnIndex("time"))); cursor.moveToNext();//将游标指向下一个 } //cursor.close(); dm.close();//关闭数据操作对象 adapter=newListViewAdapter(this,items,times);//创建数据源 } @Override protectedvoidonDestroy(){//销毁Activity之前,所做的事 //TODOAuto-generatedmethodstub cursor.close();//关闭游标 super.onDestroy(); } //滑动事件 publicvoidonScrollStateChanged(AbsListViewview,intscrollState){ //TODOAuto-generatedmethodstub } publicvoidonScroll(AbsListViewview,intfirstVisibleItem, intvisibleItemCount,inttotalItemCount){ //TODOAuto-generatedmethodstub } //--------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Andriod 平台 记事本 程序 源码