探索Android应用开发(二)

android

android

学习目标:

  1. 增加应用的相关操作:新增、编辑和删除;
  2. 将应用的数据存储在数据库中;

学习目的:

  1. 掌握如何增加menu的选项,并处理事件;
  2. 了解数据库操作的基本知识。

学习收获:

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。这个类负责在数据库存在时打开数据库,不存在时创建,必要时升级。

Leave a comment

Your comment