设为首页 加入收藏

TOP

Android中一些要注意的地方
2014-11-24 03:27:15 来源: 作者: 【 】 浏览:0
Tags:Android 一些 注意 地方

如果ArrayList和ListView之间绑定,那么ArrayList的数据每次修改后一定要记得立刻SetAdapter,不然屏幕上一点就弹窗报错。


只要没调用finish(),onCreate和构造函数就不会被反复调用,所谓的A Activity中激活了B Activity后A就会销毁,然后从B返回A时A会重新创建是错误的,A一直在,只有从A退出,返回上一层(比如ZERO)后再进入A,A才会重建。


结合以下的实例更能理解这一点。


startActivity实际上是建立了一个新的线程,假如A中激活了B,那么在进入B后A并没有wait,而是继续执行着代码,好比在startActivity(B)后紧挨着放一个setTitle,会发现在横向切换屏幕的瞬间,B的屏幕完全切入之前,A的title被改变了,也就是说A并没有等B结束才继续往下执行代码,A没有wait,所以在B的激活代码后面紧挨着放一个刷新A界面的函数是不靠谱的,这个函数将在B被激活的瞬间就被调用,等B回来了那刷新早执行过了。


如果要在B返回后立刻执行一些动作,比如刷新A,那么使用startActivityForResult(B,1),后面的请求代码随便写,再在A中重载onActivityResult函数即可,里面写上刷新函数就行。至于B是否setResult(1)无关紧要,B中不需要其他额外代码,即使不自己写finish,按手机上的返回键一样触发onActivityResult。


XML文件中layout只能被layout包含,如果在listview里包含一个relativelayout会在创建时弹窗报错。


在进入新的Activity后如果立刻弹窗报错,第一反应是要去找哪里有空指针,基本都这个原因,有的可能是XML文件相关的,例如contentView用了R.layout.A.xml,但又要获取B.xml页中元素的id,则获取不到,得到的值是null。


或者说在setAdapter中用了一个声明了但没有初始化的Arraylist作为第二个参数,一样也会弹窗报错。_


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Ubuntu 10.04下编译Android 2.2源.. 下一篇Java的本地调用几点要注意

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)