通过SQLite的查询和修改实现生活笔记demo
通过NotePadList实现笔记读取,
public class NotePadList extends Activity { private NotePadProvider nProvider = new NotePadProvider(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setNoteListView(); } SimpleCursorAdapter adapter; private void setNoteListView() { c = qurydata(); //lsitviw ListView lsv = (ListView) findViewById(R.id.id_listview); //simpleadapter adapter=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() { @Override public 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; } @Override public 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); } /**刷新*/ @Override protected 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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_note_pad); et = (EditText) findViewById(R.id.editText1); } @Override public 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") @Override public 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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notepad_detil); initView(); et.setOnClickListener(new OnClickListener() { @Override public 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); } } @Override public 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; } @Override public 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); } /**数据库创建时执行,且只执行一次*/ @Override public 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!"); } /**数据库版本升级时执行*/ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.i("TAG", "onUpgrade"); }
