W e S D
0 1

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();
    }
  });

  这样本地读取数据和删除功能就得到实现。

posted @ 2015-12-27 22:27  SD.Team  阅读(137)  评论(0编辑  收藏  举报