SQLite_生活笔记demo

来源:互联网 发布:卷积网络 python 简单 编辑:程序博客网 时间:2024/06/06 04:53

通过SQLite的查询和修改实现生活笔记demo

通过NotePadList实现笔记读取,

public class NotePadList extends Activity {private NotePadProvider nProvider = new NotePadProvider(this);@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setNoteListView();}SimpleCursorAdapter adapter;private void setNoteListView() {c = qurydata();//lsitviwListView lsv = (ListView) findViewById(R.id.id_listview);//simpleadapteradapter=new SimpleCursorAdapter(this,R.layout.notepadlist,c, new String[]{"content","created"},    new int[]{R.id.lsit_textview,R.id.lsit_textview2},    CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);lsv.setAdapter(adapter);lsv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {c.moveToPosition(position);String content = c.getString(c.getColumnIndex("content"));Intent intent =  new Intent(NotePadList.this, NotepadDetil.class);intent.putExtra("contentKey",content);intent.putExtra("idKey",String.valueOf(position+1));startActivityForResult(intent, 100);}});}Cursor c;private Cursor qurydata() {String sql="select * from notetab";c =nProvider.query(sql, null);return c;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}    @Override    public boolean onOptionsItemSelected(MenuItem item) {    if (item.getItemId() == R.id.noteAddId) {startActivityForResult(new Intent(this, NotePadAdd.class),100);//请求码}    return super.onOptionsItemSelected(item);    }/**刷新*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode==100&&resultCode==200) {c = qurydata();adapter.changeCursor(c);}}}


通过NotePadAdd实现增加笔记,

public class NotePadAdd extends Activity {private EditText et;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_note_pad);et = (EditText) findViewById(R.id.editText1);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.note_pad, menu);return true;}@SuppressLint("SimpleDateFormat")@Overridepublic boolean onOptionsItemSelected(MenuItem item) {NotePadProvider nProvider = new NotePadProvider(this);if (item.getItemId() == R.id.save) {//获得页面数据String content = et.getText().toString();//对数据进行非空验证if (TextUtils.isEmpty(content)) {et.setError("null");return true;}//将数据写到数据库ContentValues values = new ContentValues();values.put("content", content);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");values.put("created", sdf.format(new Date()));long id = nProvider.insert("notetab", values);if (id==-1) {Toast.makeText(this, "insert error", 0).show();return true;}//关闭当前页面setResult(200);finish();}return super.onOptionsItemSelected(item);}}


通过NotepadDetil实现修改笔记,

public class NotepadDetil extends Activity {private EditText et;private MenuItem et_save;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_notepad_detil);initView();et.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {et.setFocusableInTouchMode(true);et_save.setVisible(true);}});}private void initView() {et = (EditText) findViewById(R.id.id_editText);Intent intent = getIntent();String contentNew = intent.getStringExtra("contentKey");String contentOld = et.getText().toString();if (TextUtils.isEmpty(contentOld)) {et.setText(contentNew);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.notepad_detil, menu);et_save = menu.findItem(R.id.edt_save);et_save.setVisible(false);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if (item.getItemId() == R.id.edt_save) {//获取当前页面的数据String newcontent = et.getText().toString();NotePadProvider nProvider=new NotePadProvider(this);  ContentValues values=new ContentValues();  values.put("content", newcontent);    Intent intent=getIntent();  String id=intent.getStringExtra("idKey");  nProvider.updata("notetab",  values, "_id=?", new String[]{id});  //4.关闭页面  setResult(200);  finish();}return super.onOptionsItemSelected(item);}


NotePadProvider是数据库的操作类

public class NotePadProvider {private DBHelper dbHelper;public NotePadProvider(Context context) {dbHelper=new DBHelper(context,"notepad.db", null, 1);}/**写入数据*/public long insert(String table,ContentValues values){SQLiteDatabase sdb=dbHelper.getWritableDatabase();long id=sdb.insert(table, null, values);sdb.close();return id;}/**更新*/public long updata(String table, ContentValues values, String whereClause, String[] whereArgs){SQLiteDatabase sdb = dbHelper.getWritableDatabase();long id = sdb.update(table, values, whereClause, whereArgs);return id;}/**查询*/public Cursor query(String sql,String whereArgs[]){SQLiteDatabase sdb=dbHelper.getReadableDatabase();return sdb.rawQuery(sql, whereArgs);}/**操作SQLite的一个工具类*/class DBHelper extends SQLiteOpenHelper{public DBHelper(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);}/**数据库创建时执行,且只执行一次*/@Overridepublic void onCreate(SQLiteDatabase db) {   String sql=   "create table if not exists notetab(" +   "_id integer primary key autoincrement," +   "content text not null," +   "created text not null)";      db.execSQL(sql);      Log.i("TAG", "table create ok!");}/**数据库版本升级时执行*/@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.i("TAG", "onUpgrade");}



0 0
原创粉丝点击