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作为第二个参数,一样也会弹窗报错。_

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsxdw.html