1、MainActivity

package cn.dccssq; import android.app.ListActivity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; public class MainActivity extends ListActivity { private static final int INSERT_ID = Menu.FIRST; private static final int DELETE_ID = Menu.FIRST + 1; private static final int ACTIVITY_CREATE = 0; private static final int ACTIVITY_EDIT = 1; private DiaryDbAdapter diaryDb; private Cursor cursor; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); diaryDb =new DiaryDbAdapter(this); diaryDb.open(); } private void showListView(){ cursor = diaryDb.getAllNotes(); String[] from = new String[]{DiaryDbAdapter.KEY_TITLE,DiaryDbAdapter.KEY_BODY}; int[] to = new int[]{R.id.text1,R.id.created}; ListAdapter cursorAdapter = new SimpleCursorAdapter(this,R.layout.diary_row,cursor,from,to); setListAdapter(cursorAdapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); Cursor c = cursor; c.move(position); Intent intent = new Intent(this,ActivityDiary.class); intent.putExtra(DiaryDbAdapter.KEY_ROWID, id); intent.putExtra(DiaryDbAdapter.KEY_TITLE, c.getString(c .getColumnIndexOrThrow(DiaryDbAdapter.KEY_TITLE))); intent.putExtra(DiaryDbAdapter.KEY_BODY, c.getString(c .getColumnIndexOrThrow(DiaryDbAdapter.KEY_BODY))); startActivityForResult(intent, ACTIVITY_EDIT); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); showListView(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub super.onCreateOptionsMenu(menu); menu.add(0,INSERT_ID,0,R.string.menu_insert); menu.add(0,DELETE_ID,0,R.string.menu_delete); return true; } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()){ case INSERT_ID: Log.i("INSERT:", String.valueOf(INSERT_ID)); createDiary(); return true; case DELETE_ID: Log.i("DELETE_ID:", String.valueOf(getListView().getSelectedItemId())); diaryDb.deleteDiary(getListView().getSelectedItemId()); showListView(); return true; } return super.onMenuItemSelected(featureId, item); } private void createDiary(){ Intent intent = new Intent(); intent.setClass(this, ActivityDiary.class); startActivityForResult(intent, ACTIVITY_CREATE); } }

2、ActivityDiary

package cn.dccssq; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; public class ActivityDiary extends Activity { // title EditText EditText titleTxt; // body EditText EditText bodyTxt; // save Button Button btn; // Row Id Long rowId; private DiaryDbAdapter diaryDb; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.notepad); // Initialize the DiaryDbAdapter. diaryDb = new DiaryDbAdapter(this); // Get the screen control titleTxt = (EditText)findViewById(R.id.title); bodyTxt = (EditText)findViewById(R.id.body_text); btn = (Button)findViewById(R.id.button); rowId = null ; // Get data from the front page Bundle bundle = getIntent().getExtras(); if(bundle!=null){ Log.i("bund:",bundle.toString()); // Set data to page String title = bundle.getString(DiaryDbAdapter.KEY_TITLE); String body = bundle.getString(DiaryDbAdapter.KEY_BODY); rowId = bundle.getLong(DiaryDbAdapter.KEY_ROWID); if(title!=null) { titleTxt.setText(title); } if(body!=null) { bodyTxt.setText(body); } } btn.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub String title = titleTxt.getText().toString(); String body = bodyTxt.getText().toString(); if(checkInput(title, body)){ diaryDb.open(); if(rowId!=null){ diaryDb.updateDiary(rowId, title, body); }else{ diaryDb.createDiary(title, body); } diaryDb.close(); Intent mIntent = new Intent(); setResult(RESULT_OK, mIntent); finish(); } } }); } /** * Validate the input. * @param title * @param body * @return */ public boolean checkInput(String title ,String body){ if(null==title || title.trim().length()==0){ titleTxt.setError("Please input the title!"); return false; } if(null==body || body.trim().length()==0){ bodyTxt.setError("Please input the content!"); return false; } return true; } }   

3、DiaryDbAdapter DB操作类,提供了两种增删查改的功能代码

package cn.dccssq; import java.util.Calendar; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; public class DiaryDbAdapter { public static final String KEY_TITLE = "title"; public static final String KEY_BODY = "body"; public static final String KEY_ROWID = "_id"; public static final String KEY_CREATED = "created"; private DatabaseHelper databaseHelper; private Context context; private SQLiteDatabase sqliteDatabase; public DiaryDbAdapter(Context context) { this.context = context; } /** * Open the Database */ public void open(){ databaseHelper = new DatabaseHelper(context); try { sqliteDatabase = databaseHelper.getWritableDatabase(); }catch(SQLiteException e){ sqliteDatabase = databaseHelper.getReadableDatabase(); } } /** * Close the Database */ public void close() { sqliteDatabase.close(); } /** * Insert the Data * @param title * @param body * @return */ public long createDiary(String title,String body){ ContentValues content = new ContentValues(); content.put(KEY_TITLE, title); content.put(KEY_BODY, body); Calendar calendar = Calendar.getInstance(); String created = calendar.get(Calendar.YEAR) + "/" + calendar.get(Calendar.MONTH) + "/" + calendar.get(Calendar.DAY_OF_MONTH) + " " + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE); content.put(KEY_CREATED, created); return sqliteDatabase.insert(databaseHelper.DATABSE_TABLE, null, content); } /** * Delete the record * @param rowId * @return */ public boolean deleteDiary(long rowId){ String whereString = KEY_ROWID + "=" + rowId; return sqliteDatabase.delete(databaseHelper.DATABSE_TABLE, whereString, null)>0; } /** * Get all Records * @return */ public Cursor getAllNotes() { String[] searchResult = {KEY_ROWID, KEY_TITLE,KEY_BODY, KEY_CREATED}; return sqliteDatabase.query(databaseHelper.DATABSE_TABLE, searchResult, null, null, null, null, null); } /** * Get the record by condition * @param rowId * @return * @throws SQLException */ public Cursor getDiary(long rowId) throws SQLException{ String[] searchResult = {KEY_ROWID, KEY_TITLE,KEY_BODY, KEY_CREATED}; String whereString = KEY_ROWID + "=" + rowId; Cursor mCursor = sqliteDatabase.query(true, databaseHelper.DATABSE_TABLE, searchResult, whereString, null, null, null, null, null); if(mCursor!=null){ mCursor.moveToFirst(); } return mCursor; } public boolean updateDiary(long rowId ,String title,String body){ ContentValues values = new ContentValues(); values.put(KEY_ROWID, title); values.put(KEY_BODY,body); Calendar calendar = Calendar.getInstance(); String created = calendar.get(Calendar.YEAR) + "/" + calendar.get(Calendar.MONTH) + "/" + calendar.get(Calendar.DAY_OF_MONTH) + " " + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE); values.put(KEY_CREATED, created); String whereString = KEY_ROWID + "=" + rowId; return sqliteDatabase.update(databaseHelper.DATABSE_TABLE, values, whereString, null)>0; } public void xinjianDiary(String title,String body){ Calendar calendar = Calendar.getInstance(); String created = calendar.get(Calendar.YEAR) + "/" + calendar.get(Calendar.MONTH) + "/" + calendar.get(Calendar.DAY_OF_MONTH) + " " + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE); String insertSQL = "INSERT INTO " + databaseHelper.DATABSE_TABLE +"(" + KEY_ROWID +"," + KEY_TITLE+"," + KEY_BODY +"," + KEY_CREATED + ")" + " values (?,?,?,?)" ; Object[] args = {null,title,body,created}; sqliteDatabase.execSQL(insertSQL, args); } public void bianjiDiary(long rowId ,String title,String body){ Calendar calendar = Calendar.getInstance(); String created = calendar.get(Calendar.YEAR) + "/" + calendar.get(Calendar.MONTH) + "/" + calendar.get(Calendar.DAY_OF_MONTH) + " " + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE); String updateSQL = "update " + databaseHelper.DATABSE_TABLE +" set " + KEY_TITLE+"=? ," + KEY_BODY +"=? ," + KEY_CREATED + "=? " + " where " + KEY_ROWID + "= ?" ; Object[] args = {title,body,created,rowId}; sqliteDatabase.execSQL(updateSQL, args); } public void shanchuDiary(long rowId ){ String deleteSQL = "delete from "+ databaseHelper.DATABSE_TABLE +" where " + KEY_ROWID + "= ?" ; Object[] args = {rowId}; sqliteDatabase.execSQL(deleteSQL, args); } public Cursor qudeAllNotes() { String searchSQL = "select _id , title , body ,created from "+ databaseHelper.DATABSE_TABLE; return sqliteDatabase.rawQuery(searchSQL, null); } }

4、DatabaseHelper

package cn.dccssq; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { private final static String DATABSE_NAME = "notepad"; private final static int DATABASE_VERSION = 1; public final static String DATABSE_TABLE = "diary"; private final static String DATABASE_CREATE = "create table " + DATABSE_TABLE + " (_id integer primary key autoincrement," + "title text not null, body text not null, created text not null);"; public DatabaseHelper(Context context) { super(context, DATABSE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { db.execSQL("DROP TABLE IF EXISTS " + DATABSE_TABLE); onCreate(db); } }

5、main.xml

<?xml version="1.0" encoding="utf-8"?>

6、diary_row.xml

<?xml version="1.0" encoding="utf-8" ?>   

7、notepadxml

<?xml version="1.0" encoding="utf-8"?>

8、strings.xml

<?xml version="1.0" encoding="utf-8"?> Hello World, MainActivity! db2 编辑 标题: 内容: 确定: Add Delete Edit

9、AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

Android记事本程序源码_第1张图片

 

Android记事本程序源码_第2张图片

更多相关文章

  1. android 视频通话 项目 源码
  2. Android调用系统应用程序
  3. Android IPC 通讯机制源码分析 二
  4. android执行外部程序,类似DELPHI里的EXEC函数
  5. android 读取,写入图片到sd卡源码
  6. 【30篇突击 android】源码统计八
  7. 视频聊天系统源码Android 播放视频
  8. android延续按两次返回退出程序(完整代码)

随机推荐

  1. Android(安卓)Studio获取SHA1值
  2. ANDROID Porting系列三、Build Cookbook
  3. Android(安卓)中文 API (20) —— DatePick
  4. 基于Android(安卓)tess-two工程的数字识
  5. Android使背景灯(Brightness)高亮的方法
  6. Android的CTS测试
  7. 【Android】View绘制过程分析之draw
  8. android spinner自动弹出列表,设置title,Tt
  9. 【Android】【录音】Android录音--AudioR
  10. Android之PopuWindow简单学习