基于Andriod平台的安卓记事本程序源码.doc_第1页
基于Andriod平台的安卓记事本程序源码.doc_第2页
基于Andriod平台的安卓记事本程序源码.doc_第3页
基于Andriod平台的安卓记事本程序源码.doc_第4页
基于Andriod平台的安卓记事本程序源码.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DatabaseHelper.javapackage space;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DatabaseHelper extends SQLiteOpenHelper private String tableName = record;private Context mContext = null;private String sql = create table if not exists + tableName +(_id integer primary key autoincrement, +title varchar, +content text, +time varchar);public DatabaseHelper(Context context, String name, CursorFactory factory,int version) super(context, name, factory, version);/ TODO Auto-generated constructor stubOverridepublic void onCreate(SQLiteDatabase db) / TODO Auto-generated method stub/创建表db.execSQL(sql);Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated method stubDatabaseManage.javapackage space;import java.util.Date;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteException;import android.util.Log;public class DatabaseManage private Context mContext = null;private SQLiteDatabase mSQLiteDatabase = null;/用于操作数据库的对象private DatabaseHelper dh = null;/用于创建数据库的对象private String dbName = notepad.db;private int dbVersion = 1;public DatabaseManage(Context context)mContext = context;/* * 打开数据库 */public void open()trydh = new DatabaseHelper(mContext, dbName, null, dbVersion);if(dh = null)Log.v(msg, is null);return ;mSQLiteDatabase = dh.getWritableDatabase();/dh.onOpen(mSQLiteDatabase);catch(SQLiteException se)se.printStackTrace();/* * 关闭数据库 */public void close()mSQLiteDatabase.close();dh.close();/获取列表public Cursor selectAll()Cursor cursor = null;tryString sql = select * from record;cursor = mSQLiteDatabase.rawQuery(sql, null);catch(Exception ex)ex.printStackTrace();cursor = null;return cursor;public Cursor selectById(int id)/String result = ;Cursor cursor = null;tryString sql = select * from record where _id= + id +;cursor = mSQLiteDatabase.rawQuery(sql, null);catch(Exception ex)ex.printStackTrace();cursor = null;return cursor;/插入数据public long insert(String title, String content)long datetime = System.currentTimeMillis();long l = -1;tryContentValues cv = new ContentValues();cv.put(title, title);cv.put(content, content);cv.put(time, datetime);l = mSQLiteDatabase.insert(record, null, cv);/Log.v(datetime, datetime+l);catch(Exception ex)ex.printStackTrace();l = -1;return l;/删除数据public int delete(long id)int affect = 0;tryaffect = mSQLiteDatabase.delete(record, _id=?, new Stringid+);catch(Exception ex)ex.printStackTrace();affect = -1;return affect;/修改数据public int update(int id, String title, String content)int affect = 0;tryContentValues cv = new ContentValues();cv.put(title, title);cv.put(content, content);String w = id+;affect = mSQLiteDatabase.update(record, cv, _id=?, w);catch(Exception ex)ex.printStackTrace();affect = -1;return affect;ListViewAdapter.javapackage space;import java.util.HashMap;import java.util.List;import android.content.Context;import android.text.format.DateFormat;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class ListViewAdapter extends BaseAdapter private List listItems;private List listItemTimes;/private HashMap listItems;private LayoutInflater inflater;public ListViewAdapter(Context context, List listItems, List times)this.listItems = listItems;this.listItemTimes = times;inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);/* * 往列表添加条目 * param item */public void addListItem(String item, String time)listItems.add(item);listItemTimes.add(time);/* * 删除指定位置的数据 * param position */public void removeListItem(int position)listItems.remove(position);listItemTimes.remove(position);/* * 获取列表的数量 */public int getCount() / TODO Auto-generated method stubreturn listItems.size();/* * 根据索引获取列表对应索引的内容 */public Object getItem(int position) / TODO Auto-generated method stubreturn listItems.get(position);public long getItemId(int position) / TODO Auto-generated method stubreturn position;/* * 通过该函数显示数据 */public View getView(int position, View convertView, ViewGroup parent) / TODO Auto-generated method stubif(convertView = null)convertView = inflater.inflate(R.layout.notepad_list_item,null);TextView text = (TextView)convertView.findViewById(R.id.listItem);text.setText(listItems.get(position);TextView time = (TextView)convertView.findViewById(R.id.listItemTime);String datetime = DateFormat.format(yyyy-MM-dd kk:mm:ss, Long.parseLong(listItemTimes.get(position).toString();time.setText(datetime);return convertView;NotepadActivity.javapackage space;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.app.AlertDialog;import android.app.ListActivity;import android.content.DialogInterface;import android.content.Intent;import android.database.Cursor;import android.os.Bundle;import android.util.Log;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnCreateContextMenuListener;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.ListView;public class NotepadActivity extends ListActivity implements OnScrollListener /* Called when the activity is first created. */用于表示当前界面是属于哪种状态public static final int CHECK_STATE = 0;public static final int EDIT_STATE = 1;public static final int ALERT_STATE = 2;private ListView listView;private ListViewAdapter adapter;/ 数据源对象private View RecordView;/列表布局private View longClickView ;/长按弹出的布局private Button addRecordButton;/新增private Button deleteRecordButton;/删除private Button checkRecordButton;/查看private Button modifyRecordButton;/修改private DatabaseManage dm = null;/ 数据库管理对象private Cursor cursor = null;private int id = -1;/被点击的条目 Override public void onCreate(Bundle savedInstanceState) 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 = new DatabaseManage(this);/数据库操作对象 listView = getListView();/获取id为list的对象 listView.addFooterView(RecordView);/设置列表底部 视图 initAdapter();/初始化 / this.startManagingCursor(cursor);/将cursor交给Activity管理 setListAdapter(adapter);/自动为id为list的ListView设置适配器 /设置滑动监听器 listView.setOnScrollListener(this); listView.setOnCreateContextMenuListener(new myOnCreateContextMenuListener(); /设置按钮监听器 addRecordButton.setOnClickListener(new AddRecordListener();/新增 deleteRecordButton.setOnClickListener(new DeleteRecordListener();/删除 checkRecordButton.setOnClickListener(new CheckRecordListener();/查看 modifyRecordButton.setOnClickListener(new ModifyRecordListener();/修改 /初始化数据源public void initAdapter() dm.open();/打开数据库操作对象 cursor = dm.selectAll();/获取所有数据 cursor.moveToFirst();/将游标移动到第一条数据,使用前必须调用 int count = cursor.getCount();/个数 ArrayList items = new ArrayList(); ArrayList times = new ArrayList(); for(int i= 0; i count; i+) items.add(cursor.getString(cursor.getColumnIndex(title); times.add(cursor.getString(cursor.getColumnIndex(time); cursor.moveToNext();/将游标指向下一个 / cursor.close(); dm.close();/关闭数据操作对象 adapter = new ListViewAdapter(this,items,times);/创建数据源 Overrideprotected void onDestroy() /销毁Activity之前,所做的事/ TODO Auto-generated method stubcursor.close();/关闭游标super.onDestroy();/滑动事件public void onScrollStateChanged(AbsListView view, int scrollState) / TODO Auto-generated method stubpublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) / TODO Auto-generated method stub/-/长按public class myOnCreateContextMenuListener implements OnCreateContextMenuListenerpublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) / TODO Auto-generated method stubfinal AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;menu.setHeaderTitle();/设置选项menu.add(0,0,0,删除);menu.add(0,1,0,修改);menu.add(0,2,0,查看);/响应长按弹出菜单的点击事件public boolean onContextItemSelected(MenuItem item)AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();/HashMap map = List.get(menuInfo.position);/Log.v(show, shibai);dm.open();/cursor = dm.selectAll();switch(item.getItemId()case 0:/删除trycursor.moveToPosition(menuInfo.position);int i = dm.delete(Long.parseLong(cursor.getString(cursor.getColumnIndex(_id);/删除数据adapter.removeListItem(menuInfo.position);/删除数据adapter.notifyDataSetChanged();/通知数据源,数据已经改变,刷新界面/Log.v(show, chenggong1 + i);catch(Exception ex)ex.printStackTrace();break;case 1:/修改/Log.v(show, chenggong2);trycursor.moveToPosition(menuInfo.position);/用于Activity之间的通讯Intent intent = new Intent();/通讯时的数据传送intent.putExtra(id, cursor.getString(cursor.getColumnIndex(_id);intent.putExtra(state, ALERT_STATE);intent.putExtra(title, cursor.getString(cursor.getColumnIndex(title);intent.putExtra(time, cursor.getString(cursor.getColumnIndex(time);intent.putExtra(content, cursor.getString(cursor.getColumnIndex(content);/设置并启动另一个指定的Activityintent.setClass(NotepadActivity.this, NotepadEditActivity.class);NotepadActivity.this.startActivity(intent);catch(Exception ex)ex.printStackTrace();break;case 2:/查看/Log.v(show, chenggong3);trycursor.moveToPosition(menuInfo.position);Intent intent = new Intent();intent.putExtra(id, cursor.getString(cursor.getColumnIndex(_id);intent.putExtra(title, cursor.getString(cursor.getColumnIndex(title);intent.putExtra(time, cursor.getString(cursor.getColumnIndex(time);intent.putExtra(content, cursor.getString(cursor.getColumnIndex(content);intent.setClass(NotepadActivity.this, NotepadCheckActivity.class);NotepadActivity.this.startActivity(intent);catch(Exception ex)ex.printStackTrace();break;default:;/cursor.close();dm.close();return super.onContextItemSelected(item);/短按,即点击Overrideprotected void onListItemClick(ListView l, View v, int position, long id) / TODO Auto-generated method stubsuper.onListItemClick(l, v, position, id);/Log.v(position, position+);/Log.v(id, id+);cursor.moveToPosition(position);Intent intent = new Intent();intent.putExtra(state, CHECK_STATE);intent.putExtra(id, cursor.getString(cursor.getColumnIndex(_id);intent.putExtra(title, cursor.getString(cursor.getColumnIndex(title);intent.putExtra(time, cursor.getString(cursor.getColumnIndex(time);intent.putExtra(content, cursor.getString(cursor.getColumnIndex(content);/cursor.close();dm.close();intent.setClass(NotepadActivity.this, NotepadCheckActivity.class);NotepadActivity.this.startActivity(intent);/新建public class AddRecordListener implements OnClickListenerpublic void onClick(View v) / TODO Auto-generated method stubIntent intent = new Intent();intent.putExtra(state, EDIT_STATE);intent.setClass(NotepadActivity.this,NotepadEditActivity.class);NotepadActivity.this.startActivity(intent);/-public class DeleteRecordListener implements OnClickListenerpublic void onClick(View v) / TODO Auto-generated method stubpublic class CheckRecordListener implements OnClickListenerpublic void onClick(View v) / TODO Auto-generated method stubpublic class ModifyRecordListener implements OnClickListenerpublic void onClick(View v) / TODO Auto-generated method stubNotepadCheckActivity.javapackage space;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.text.format.DateFormat;import android.widget.TextView;public class NotepadCheckActivity extends Activity private TextView titleText = null;private TextView contentText = null;private TextView timeText = null;Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.check_notepad);titleText = (TextView)findViewById(R.id.checkTitle);contentText = (TextView)findViewById(R.id.checkContent);timeText = (TextView)findViewById(R.id.checkTime);Intent intent = getIntent();/获取启动该Activity的intent对象String id = intent.getStringExtra(_id);String title= intent.getStringExtra(title);String time= intent.getStringExtra(time);String content = intent.getStringExtra(content);long t = Long.parseLong(time);String datetime = DateFormat.format(yyyy-MM-dd kk:mm:ss, t).toString();this.titleText.setText(title);this.timeText.setText(datetime);this.contentText.setText(content);NotepadEditActivity.javapackage space;import android.app.Activity;import android.content.Intent;import android.database.Cursor;import android.os.Bundle;import android.text.Editable;import android.text.Selection;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.Button;import android.widget.EditText;public class NotepadEditActivity extends Activity public static final int CHECK_STATE = 0;public static final int EDIT_STATE = 1;public static final int ALERT_STATE = 2;private int state = -1;private Button addRecord;/增加private Button complete;/完成private EditText title;private EditText content;private DatabaseManage dm = null;private String id = ;private String titleText = ;private String contentText = ;private String timeText = ;protected void onCreate(Bundle savedInstanceState)/ TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.edit_notepad);Intent intent = getIntent();state = intent.getIntExtra(state, EDIT_STATE);/赋值控件对象addRecord = (Button)findViewById(R.id.addRecordButto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论