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();
}
});
这样本地读取数据和删除功能就得到实现。
eatwhatApp开发实战(六)的更多相关文章
- eatwhatApp开发实战(三)
在实战二中我们在eatwhatApp上增加了“添加店铺的功能”.接下来,我们来将添加的店铺显示出来,这里我们用到控件--ListView. 先上演示图: 首先,我们先设置布局: <Relativ ...
- eatwhatApp开发实战(二)
上期,我们做了个小app“eatwhat”,接下来每期都会为其添加新的功能.本期,我们为店铺增加添加店铺的功能. 还是先设置个布局: <RelativeLayout android:layout ...
- eatwhatApp开发实战(一)
开发背景: 当你想用抛硬币来决定事情的时候,那么硬币抛起的瞬间,你就有答案了.一样的,吃啥?eatwhat点开,按钮一点,你就可以知道你中午要吃啥. 话不多说,项目开发走起 ADT点开,New==&g ...
- android 自定义View开发实战(六) 可拖动的GridView
1前言 由于项目需求,需要把项目的主界面采用GridView显示,并且需要根据模块优先级支持拖动图标(砍死产品狗).为此,自定义了一个支持拖拽图标的GridView.效果如下: 具体效果如上图 2 可 ...
- eatwhatApp开发实战(十四)
之前我们就输入框EditText做了优化,而这次,我们为app添加拨打电话的功能. 首先是布局,将activity_shop_info.xml中对应的电话那一栏进行重新设计: <Relative ...
- eatwhatApp开发实战(十三)
这次内容,我们就项目中添加商店名称的EditText进行修改,让添加按钮随着edittext的内容而改变. 上代码,首先是xml文件上对两个控件的修改: <RelativeLayout andr ...
- eatwhatApp开发实战(十二)
上次我们介绍了跳转activity并且实现传值的功能,今天我们来实现双击返回键退出app的功能,上代码: 这里我们有两种方式去实现点击事件: 第一种方式: /** * 返回键的监听(系统提供的) */ ...
- eatwhatApp开发实战(十一)
之前我们实现了点击item项跳转activity,接下来我们再其基础上添加参数的传递. 在MainActivity里面的onItemClick()中: String name = shopList.g ...
- eatwhatApp开发实战(十)
android应用中,很少有一个activity的app,这次我们设置一个activity,通过listview的点击跳转并显示对应的商店信息. 首先创建类ShopInfoActivity,对应设置其 ...
随机推荐
- python(文件操作)
一.文件操作 1.tell()方法返回文件的当前位置,即文件指针当前位置. UTF-8 编码格式,一个中文占3个字符 GBK 编码格式,一个中文占2个字符 #写入前文件内容如下 "" ...
- High Card Low Card G(田忌赛马进阶!!)
传送门 \(首先一定要明确一个观点,不然会完全没有思路\) \(\bullet\)\(由于前半段大的更优,后半段小的更优.\) \(\bullet\)\(所以,\)Bessie\(一定会在前(n/2) ...
- java结合email实现自动推送
1.获取表中最后一条数据 public static String demo() throws SQLException { String sql = "select * FROM baox ...
- Python-SHA256加密算法接口测试
前言 小伙伴们在做接口测试的时候,是否遇到一些需要加密的接口,但是不知如何进行测试呢?今天我们来学习一下SHA256加密算法接口如何进行测试的. SHA256加密算法介绍: 比特币挖矿的御用算法 SH ...
- 写了shell脚本想一键启动三台虚拟机的Zookeeper,却不知道为啥总是启动不了
首先,一键启动的shell脚本是这样的 #! /bin/bash case $1 in "start"){ for i in node01 node02 node03 do ssh ...
- 【Spark】SparkStreaming和Kafka的整合
文章目录 Streaming和Kafka整合 概述 使用0.8版本下Receiver DStream接收数据进行消费 步骤 一.启动Kafka集群 二.创建maven工程,导入jar包 三.创建一个k ...
- 【Spark】RDD的依赖关系和缓存相关知识点
文章目录 RDD的依赖关系 宽依赖 窄依赖 血统 RDD缓存 概述 缓存方式 RDD的依赖关系 RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency) 和宽依赖 ...
- 【HBase】HBase基本介绍和基础架构
目录 基本介绍 概述 特点 HBase和Hadoop的关系 RDBMS与HBase的对比 特征 基础架构 基本介绍 概述 HBase是bigtable的开源java版本,是建立在HDFS之上,提供高可 ...
- java经典问题 byte b=1、b=b+1、b+=1
直接问题: 首先 byte的范围 [-128,127] byte 类型可以自动转为int类型 int类型不能自动转为byte类型. 超过byte的范围,就会变成int类型了 byte b=1:正确, ...
- jenkins+gitee+ssh自动化部署
一.准备环境 1,配置maven(MAVEN_HOME) 2,配置jdk(JAVA_HOME)我这里用的jdk1.8.0_121,之前碰到过一次别的版本的jdk在启动tomcat无法解析https情况 ...