京东Android一面答错的知识
来源:互联网 发布:java 没错溢出 编辑:程序博客网 时间:2024/05/23 15:06
getItemViewType();
在ListView的Adapter里重写这个方法,可以得到不同的布局,此方法的返回值类型是int,面试官询问它的返回,回答了任意int值都可以。
后来自己测试,如果在不重写getViewTypeCount方法时,确实是任意值都可以执行的,但是inflate出来的View却是混乱的。
在添加了getViewTypeCount方法之后,如果是任意int值,在ListView向下滑动,下方的item要读取上方销毁的convertView进行复用时,会直接崩溃。
合理使用方法: 比如有三种样式的布局,重写getViewTypeCount方法,返回3 , 获取itemViewType的时候,返回值在 0~2之间。这样才可以正常执行。
SQL Lite更新
在更改版本号时进行版本更新更新时,可以直接更改的部分是:
更改表名,增加一个列。
但是不可以进行删除列的操作,如果需要删除列,就需要整个表的数据迁移:
db.beginTransaction(); //开启shi'wu try { //建立临时表存数据 db.execSQL("CREATE TEMPORARY TABLE pe_backup (a, b);"); db.execSQL("INSERT INTO pe_backup SELECT a, b FROM pedant;"); db.execSQL("DROP TABLE pedant;"); db.execSQL("CREATE TABLE pedant(a text, b text);"); db.execSQL("INSERT INTO pedant SELECT a, b FROM pe_backup;"); db.execSQL("DROP TABLE pe_backup;"); db.setTransactionSuccessful(); } finally { db.endTransaction(); //提交事务 }
在进行数据库越级更新的时候,更新的函数里有三个参数,数据库,老的版本号,新的版本号,如果越级升级,不能正常改变数据库的结构,正确做法是:
定义一个局部变量储存旧的版本号,然后对升级过的每一个版本号都进行判断,若局部变量的版本号和升级后的某个版本号相同,则更改一次表结构,将变量设为更新后的版本号,再进行下一次判断。
EventBus重复注册
使用EventBus.getDefault().isRegistered(this)
可以判断当前Activity是否注册了EventBus。
阅读全文
0 0
- 京东Android一面答错的知识
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面–前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面–前端冷知识集锦
- 前端不为人知的一面–前端冷知识集锦
- 前端不为人知的一面–前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- 前端不为人知的一面--前端冷知识集锦
- Media Queries
- 【20】五款常用配色
- nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法
- Swift
- servlet中的请求转发和重定向的路径问题
- 京东Android一面答错的知识
- 使用faster-rcnn训练自己的模型
- 接口测试用例小结
- Linux vim命令
- one_plus
- python简单的笔记
- Parameter '0' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]
- 关于N皇后问题
- Dos 设置网络的指令