大佬教程收集整理的这篇文章主要介绍了SQLite实例——dummynote(记事本),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
DummyNote.java
package com.example.dummynote; import androID.os.bundle; import androID.support.v4.Widget.SimplecursorAdapter; import androID.util.Log; import androID.vIEw.ContextMenu; import androID.vIEw.ContextMenu.ContextMenuInfo; import androID.vIEw.Menu; import androID.vIEw.MenuItem; import androID.vIEw.VIEw; import androID.R.bool; import androID.app.ListActivity; import androID.content.Intent; import androID.database.cursor; import androID.Widget.AdapterVIEw; import androID.Widget.ArrayAdapter; import androID.Widget.listadapter; import androID.Widget.ListVIEw; public class DummyNote extends ListActivity { private static final String TAG = "notes"; @OverrIDe protected voID onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); setContentVIEw(R.layout.main); getListVIEw().setEmptyVIEw(findVIEwByID(R.ID.empty));//设置列表为空时的显示内容为 empty文本框 registerForContextMenu(getListVIEw()); //调用 registerForContextMenu() 方法,为视图注册上下文菜单。 setAdapter(); } /* private String[] note_array={ "hangsome","lushichuanshuo","androID","library" }; */ private NotesDbAdapter mDbHelper ; private cursor mNotecursor; private voID setAdapter(){ mDbHelper = new NotesDbAdapter(this); mDbHelper.open(); fillData(); } //fillData()刷新数据 private voID fillData(){ mNotecursor = mDbHelper.getall(); startManagingcursor(mNotecursor); String[] from = new String[]{NotesDbAdapter.NOTE}; int[] to = new int[]{androID.R.ID.text1};//androID.R.ID.text1是AndroID 框架里面的TextVIEw的一个标识符 //Now create a simple cursor adapter SimplecursorAdapter adapter = new SimplecursorAdapter(this,android.R.layout.simple_List_item_1,mNotecursor,from,to); setlistadapter(adapter); } //Add an entity privatE int mNotenumber = 1; protected static final int MENU_INSERT = Menu.FirsT; protected static final int MENU_deletE = Menu.FirsT+1; @OverrIDe public Boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. super.onCreateOptionsMenu(menu); menu.add(0,MENU_INSERT,"新增记事"); menu.add(0,MENU_deletE,"删除记事"); return super.onCreateOptionsMenu(menu); } public Boolean onoptionsItemSELEcted(MenuItem item){ switch(item.getItemID()){ case MENU_INSERT: String notename = "Note "+ mNotenumber++; mDbHelper.create(noteName); fillData(); return true; case MENU_deletE: mDbHelper.delete(getListVIEw().getSELEctedItemID()); fillData(); return true; } return super.onoptionsItemSELEcted(item); } //NoteEdit Activity的跳转设置 private static final int aCTIVITY_EDIT = 0x1001; @OverrIDe protected voID onListItemClick(ListVIEw l,VIEw v,int position,long ID) { super.onListItemClick(l,v,position,ID); Intent intent = new Intent(this,NoteEdit.class); intent.putExtra(NotesDbAdapter.ROWID,ID);//ID代表绑定到这个“ListVIEw”项目的“row ID” startActivityForResult(intent,ACTIVITY_EDIT); } //startActivityForResult()和onActivityResult()方法是配套使用。 //前者负责调用其他Activity //猴子负责处理从其他Activity返回的消息 @OverrIDe protected voID onActivityResult(int requestCode,int resultCode,Intent intent) { // Todo auto-generated method stub super.onActivityResult(requestCode,resultCode,intent); fillData(); } //长按删除 @OverrIDe public voID onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { menu.add(0,"删除记事"); menu.setheadertitle("要如何处理这笔记录?"); super.onCreateContextMenu(menu,menuInfo); } @OverrIDe public Boolean onContextItemSELEcted(MenuItem item) { AdapterVIEw.AdapterContextMenuInfo info = (AdapterVIEw.AdapterContextMenuInfo) item.getMenuInfo(); switch(item.getItemID()){ case MENU_deletE: mDbHelper.delete(info.ID); fillData(); break; } return super.onContextItemSELEcted(item); } }
NoteDbAdapter.java
package com.example.dummynote; import java.util.Date; import androID.content.ContentValues; import androID.content.Context; import androID.database.sqlException; import androID.database.sqlite.sqliteDatabase; import androID.database.sqlite.sqliteOpenHelper; import androID.database.*; import androID.util.Log; public class NotesDbAdapter { private static final String TAG = "notes"; private static final String DATABASE_name = "notes.db"; private static final int DATABASE_VERSION = 1 ; private static final String DATABASE_table = "notes"; private static final String DATABASE_CREATE = "create table notes(" +"_ID INTEGER PRIMARY KEY," +"note TEXT NOT NulL," +"created IntegeR" +");"; private static class DatabaseHelper extends sqliteOpenHelper{ public DatabaseHelper(Context context) { super(context,DATABASE_name,null,DATABASE_VERSION); // Todo auto-generated constructor stub } @OverrIDe//创建数据表 public voID onCreate(sqliteDatabase db) { // Todo auto-generated method stub try { db.execsql(DATABASE_create); Log.d(tag,"onCreate !"); } catch (Exception E) { Log.d(tag,e.toString()); } } @OverrIDe//更新数据表 public voID onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { try { // Todo auto-generated method stub db.execsql("drop table IF EXISTS "+DATABASE_tablE); onCreate(db); Log.d(tag,"inUpgrade!"); } catch (Exception E) { Log.d(tag,"onUpgrade failure!"); } } } private Context mCtx = null; //抽象界面 private DatabaseHelper dbHelper; //数据库工具类 private sqliteDatabase db; //数据库类 /** COnstructor**/ public NotesDbAdapter(Context ctX){ this.mCtx=ctx; } public NotesDbAdapter open () throws sqlException{ dbHelper = new DatabaseHelper(mCtX); db = dbHelper.getWritableDatabase();//数据库不存在就创造一个,若存在就根据版本库来决定是否更新数据库 return this; } public voID close(){ dbHelper.close(); } public static final String ROWID = "_ID"; public static final String NOTE = "note"; public static final String CREATED = "created"; //query single entry public curs@R_696_6356@(long rowID)throws sqlException { cursor mcursor = db.query(DATABASE_table,//Which table to SELEct new String[]{ROWID,NOTE,CREATED},//Which columns to return ROWID+"="+rowID,//Where clause null,//Where arguments null,//Group By clause null,//Having clause null //Order-by clause ); if(mcursor!=null){ mcursor.movetoFirst();//指针移到一开始 } return mcursor; } //query single entry public curs@R_696_6356@all() { return db.query(DATABASE_table,//Which table to SELEct new String[]{ROWID,//Which columns to return null,//Where clause null,//Where arguments null,//Group By clause null,//Having clause null //Order-by clause ); } //add an entity public long create(String NotE){ Date Now = new Date(); ContentValues args = new ContentValues(); args.put(NOTE,NotE); args.put(CREATED,Now.getDate()); return db.insert(DATABASE_table,args); } //remove an entity public Boolean delete(long rowID){ return db.delete(DATABASE_table,ROWID+"="+rowID,null)>0;//delete失败返回0 } //update an entity public Boolean update(long rowID,String notE){ ContentValues args = new ContentValues(); args.put(NOTE,notE); return db.update(DATABASE_table,args,null)>0; } }
NoteEdit.java
package com.example.dummynote; import androID.app.Activity; import androID.database.cursor; import androID.os.bundle; import androID.vIEw.VIEw; import androID.Widget.button; import androID.Widget.EditText; public class NoteEdit extends Activity{ private NotesDbAdapter mDbHelper; @OverrIDe protected voID onCreate(Bundle SavedInstanceStatE){ super.onCreate(SavedInstanceStatE); mDbHelper = new NotesDbAdapter(this); mDbHelper.open(); setContentVIEw(R.layout.note_edit); findVIEws(); showVIEws(SavedInstanceStatE); } private EditText fIEld_note; private button button_confirm; private voID findVIEws() { // Todo auto-generated method stub fIEld_note = (EditText) findVIEwByID(R.ID.notE); button_confirm = (button) findVIEwByID(R.ID.confirm); } private Long mRowID; private voID showVIEws(Bundle savedInstanceStatE) { mRowID = savedInstanceState != null? savedInstanceState.getLong(NotesDbAdapter.ROWID) : null; /*saveInstanceState 这个“bundle”数据容器中,取出Activity上一次处于“stop”状态是,键值为“_ID”(NotesDbAdapter.ROWID)的内容值。如果这个ACtivity是 全新打开的或是之前的行程已经被回收了,那么“mRouID”的值被设为“null”*/ if (mRowID == null) { Bundle extras = geTintent().getExtras(); mRowID = extras != null ? extras.getLong(NotesDbAdapter.ROWID) : null; } populateFIElds();//根据RowID查询记录,并显示在EditText中 button_confirm.setonClickListener(new VIEw.onClickListener(){ @OverrIDe public voID onClick(VIEw v) { mDbHelper.update(mRowID,fIEld_note.getText().toString()); setResult(RESulT_OK); finish(); } }); } private voID populateFIElds() { if (mRowID != null){ cursor note = mDbHelper.get(mRowID); startManagingcursor(notE); fIEld_note.setText(note.getString(note.getcolumnIndexOrThrow(NotesDbAdapter.NOTE))); } } }
以上是大佬教程为你收集整理的SQLite实例——dummynote(记事本)全部内容,希望文章能够帮你解决SQLite实例——dummynote(记事本)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。