第4章 深入理解Activity与Fragment

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


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



         
再来本章重点
图 Activity生命周期及回调方法


          图 Fragment生命周期及回调方法


【知识点】
· 启动、关闭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介绍
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值