穿袜子的流氓兔的专栏

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";@Overrideprotected 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 adapterSimpleCursorAdapter adapter =new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, mNoteCursor, from, to);setListAdapter(adapter);}//Add an entityprivate int mNoteNumber = 1;protected static final int MENU_INSERT = Menu.FIRST;protected static final int MENU_DELETE = Menu.FIRST+1;@Overridepublic 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, 0, "新增记事"); menu.add(0, MENU_DELETE, 0, "删除记事"); 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;@Overrideprotected 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返回的消息@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, intent);fillData();}//长按删除@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {menu.add(0, MENU_DELETE, 0, "删除记事");menu.setHeaderTitle("要如何处理这笔记录?");super.onCreateContextMenu(menu, v, menuInfo);}@Overridepublic 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 stubtry {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 stubdb.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 entrypublic Cursor get(long rowId)throws SQLException {Cursor mCursor = db.query(DATABASE_TABLE,//Which table to selectnew String[]{ROWID,NOTE,CREATED},//Which columns to returnROWID+"="+rowId, //Where clausenull, //Where argumentsnull, //Group By clausenull, //Having clausenull //Order-by clause);if(mCursor!=null){mCursor.moveToFirst();//指针移到一开始}return mCursor;}//query single entrypublic Cursor getall() {return db.query(DATABASE_TABLE,//Which table to selectnew String[]{ROWID,NOTE,CREATED},//Which columns to returnnull, //Where clausenull, //Where argumentsnull, //Group By clausenull, //Having clausenull //Order-by clause);}//add an entitypublic 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, null, args);}//remove an entitypublic boolean delete(long rowId){return db.delete(DATABASE_TABLE,ROWID+"="+rowId,null)>0;//delete失败返回0}//update an entitypublic boolean update(long rowId,String note){ContentValues args = new ContentValues();args.put(NOTE, note);return db.update(DATABASE_TABLE, args, ROWID+"="+rowId, null)>0;}}

NoteEdit.java

友谊之花、爱情之树、以及遗憾之泪!

穿袜子的流氓兔的专栏

相关文章:

你感兴趣的文章:

标签云: