hdu 1166 敌兵布阵(树状数组)

本章详细介绍了Android四大组件之一:Activity。学习本章的重点如下图,在这章中,贯穿下来用了对比比较的方法,先是Activity和Servlet对比,再是Activity和Fragment对比,各自的相通点和不同点。这种“触类旁通”式和“温故知新”的学习思路,看得出书作者用心之良苦,读者既可以迅速获得对新知识的直观把握,还会去对比两个知识点的差异,更加深入去理解其中设计思想。
上图!
hdu 1166 敌兵布阵(树状数组)
hdu 1166 敌兵布阵(树状数组)

再来两幅类图了解Activity与Fragment(注:类图是genmymodel画的)

hdu 1166 敌兵布阵(树状数组)
hdu 1166 敌兵布阵(树状数组)
        
再来本章重点
图 Activity生命周期及回调方法
hdu 1166 敌兵布阵(树状数组)

        图 Fragment生命周期及回调方法
hdu 1166 敌兵布阵(树状数组)

【知识点】
·启动、关闭Activity
Acitivity启动其他Activity有如下两种方法
   startActivity(Intent intent): 启动其它Activity
   startActivityForResult(Intent intent,int requestCode): 以指请求码启动Activity,而且程序将会得到新启动Activity的结果(重写onActivityResult(...)方法获取)
相对的,也有两个关闭Activity的方法对应这两个启动的方法
   finish():结束当前Activity
   finishActivity(int requestCode):结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity

·Fragment与Activity之间交互信息
尽管Fragment的实现是独立于Activity的,可以被用于多个Activity,但是每个Activity所包含的是同一个Fragment的不同的实例。Fragment可以调用getActivity()方法很容易的得到它所在的Activity的对象,然后就可以查找Activity中的控件们(findViewById())。同样的,Activity也可以通过FragmentManager的方法查找它所包含的Frament们。

·Fragment与Activity之间传递数据
①Activity向Fragment传递数据:在Activity中创建Bundle数据包,并调用Fragment的setArguments(Bundle bundle)方法即可将Bundle数据包传给Fragment。
②Fragment向Activity传递数据或Activity需要在Fragment运行中进行实时通信:在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口,这样Fragment即可调用该回调方法将数据传给Activity。

【问题】为书做一些批注
·问:本章书中有一处代码是用来LayoutInflater加载了/res/layout/目录下的布局文件,LayoutInflater
  答:在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 
    ①对于一个没有被载入或者想要动态载入的界面,都需要使用        
LayoutInflater.inflate()来载入;
    ②对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。

·问:本章书Fragment事务,在调用commit()之前,开发者可以调用addToBackStack()将事务添加到back栈,问back栈
  答:有一篇文章讲的很清晰,任务Task及回收栈back stack介绍
 

hdu 1166 敌兵布阵(树状数组)

上一篇:C# 系统应用之清除Cookies、IE临时文件、历史记录


下一篇:戒烟新论(反嗜平衡点的稳步降低)及戒除过程探究 - 为自已的健康开始做准备