您的位置:首页 > 其它

day41_实战项目安全卫士之第04天

2017-12-25 19:39 211 查看

01_自动更新的设置

 

动态的传递listener:(由于自定义view的属性被封装)



暴露一个方法去设置复选框的状态







通过暴露的方法设置自定义view的属性



 

如果不更新,直接进入







02_自动更新的业务优化

 



 





03_监听动画的事件

也可以把版本检测放在开始动画里面



04_黑名单的界面

 

05_自定义组件控件事件传递

容器是没有点击事件的,除非添加 clickable:true

 

想 设置中心 添加黑名单拦截模式组件,只需提供事件的方法即可



06_黑名单界面的处理

 

设置handler处理事件,通过message(简单界面)



 

07_黑名单数据创建

标记性常量的原则:每个标记只对应一个位为1



 

例子:



08_黑名单数据的业务封装

 

封装手法:



 

09_显示黑名单数据

// 给Listview设置适配器,就去取适配器的数据显示

mLv_safenumbers.setAdapter(mAdapter);

 

// 首先 调用adapter的getcount方法来获取多少条数据

// 1:如果为0,不显示任何数据 2:否则依次调用getView()获取每个数据并设置到组件上

 

 



 



 

10_分页数据dao处理

分页的思想:

一共有多少条数据
select count(*) from blacktb
原因:SQL解析器会先查询数据字典,把*转成所有的列名和列的类型
                    然后把每行数据提取出来,最后计算多少行

 
select count(常量) from blacktb(性能好,例子:1)

            原因:不需要每行的记录,只需要行数

            select 1 from blacktb(表示查询到所有)

 

指定每一页有多少条数据
需求指定每一页行数

计算出共多少页
int pages = 201 / 20; // 结果是20,不是21
 
int pages = (int)Math.ceil( 201*1.0 / 20 ); // ceil() --- 浮点数向上取整

取每页的信息
select * from blacktb limit 5 offset 3; // 取5条数据,从第3行开始
select * from blacktb limit 5 ,3; // 从第5行开始,去3条数据
 
如:去第三页的数据
select * from blacktb limit (3 - 1) * 20 ,20
 
select * from blacktb limit (页码 – 1 ) * 每页条数 ,每页条数 ;

 

11_分页显示黑名单数据

初始化:



更新界面的initData() 方法:



切换界面:





DAO:





// 获取blacktb的所有数据游标

Cursor cursor = db.rawQuery("select " + BlackTable.PHONE + "," + BlackTable.MODE + " from " + BlackTable.BLACKTB+" limit ?,?", new String[]{((currentPage -1)*perpages)+"",perpages+""});

 

 

 

 

 

 

更改界面:放在handler里面







 

12_分批加载数据





 



 



13_删除黑名单数据

在listview的getView中给每个item添加点击事件



注意删除一条增加一条

 

14_添加黑名单数据



 

 

 

15_添加黑名单数据2

 

避免重复数据:添加前先删除

1.DAO中删除



2.Activity中删除



2.1 改造bean类



 

16_添加黑名的弹出窗体



弹出窗体的位置设置:



 

从右侧弹出窗体的animation:



设置多个组件监听的方法:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: