探索Android应用开发(二)

android
学习目标:
- 增加应用的相关操作:新增、编辑和删除;
- 将应用的数据存储在数据库中;
学习目的:
- 掌握如何增加menu的选项,并处理事件;
- 了解数据库操作的基本知识。
学习收获:
ListActivity有两个方法onCreateOptionsMenu和onOptionsItemSelected,第一个方法用法用来为Activity弹出菜单。就是在用户按下了menu按钮,会出现一系列选项。第二个方法用来处理menu产生的事件。如下内容所示,注意CREATE_ID和DELETE_ID是预定义的常量,事件发生时,可以获取到。
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(Menu.NONE, CREATE_ID, Menu.NONE, R.string.create_item); menu.add(Menu.NONE, DELETE_ID, Menu.NONE, R.string.delete_item); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case CREATE_ID: Intent intent = new Intent(this, PurseEdit.class); this.startActivityForResult(intent, 0); fillData(); return true; case DELETE_ID: adapter.delete(this.getListView().getSelectedItemId()); fillData(); return true; } return super.onOptionsItemSelected(item); } |
典型的桌面操作系统提供通用的文件系统,以便应用程序可以用它来存储文件,这些文件也可以被其他应用程序访问(会有一些访问权限控制)Android采用了不同的系统,在Android上,所有的应用数据(包括文件)都是应用自身私有的。但是Android也提供了标准的方式来向应用暴露自身数据给其他应用,那就是content provider。
不管你是不是愿意把应用的数据导出给其他应用,你都会需要一个方式来存储它。Android提供了四种机制来存储和接收数据,分别是Preferences/Files/Databases和Network。
Android API包含了对创建和使用SQLite数据库的支持,每个数据库对创建它的应用而言都是私有的。SQLiteDatabase对象代表了数据库,并且拥有方法来和它进行交互,进行查询和管理数据。创建数据库,调用SQLiteDatabase.create(),和子类SQLiteOpenHelper。
SQLiteOpenHelper类是一个帮助类,管理数据库创建和版本管理。你可以创建子类,实现onCreate、onUpgrade和可选性的onOpen。这个类负责在数据库存在时打开数据库,不存在时创建,必要时升级。