eatwhatApp开发实战(六)
上次,我们为app添加了本地存储的功能,但会发现一但退出app则存储的商家集合就消失,但其实本地已经存储了记录只是没去读取罢了。
接下来我们来实现这个功能。
/** * 获取本地数据 */ private void getLocalData() { //创建或者打开数据库 createOrOpenDataBase(); // 定义一个集合用来存放我们要的几个店名 shopList = new ArrayList<Shop>(); //游标 获取数据库表单上的项 Cursor cursor = db.query("shopinfo", null, null, null, null, null, null, null); while(cursor.moveToNext()){ //第一列 就是之前定义的店名 String shopName = cursor.getString(1); Shop Shop = new Shop(shopName); shopList.add(Shop); } }
在init()开头调用此方法,这样就可以实现如果app本地有数据,则显示数据,没有则创建新的数据库和对应表单。
接下来将本地数据的删除功能添加进去。
/** * 删除数据 * @param shop */ private void removeLocalData(Shop shop){ //跟据shopName查询并删除 db.delete("shopinfo", "shopName = ?", new String[]{shop.getName()}); }
修改确认键的点击监听:
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //删除本地数据 removeLocalData(shopList.get(position)); //移除集合内的该项 shopList.remove(position); //刷新 shopAdapter.notifyDataSetChanged(); } });
这样本地读取数据和删除功能就得到实现。
比大多数人的努力程度之低,根本轮不到拼天赋...
宝宝巴士 SD.Team