- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.fragment使用和通信
4.0的几个新特性,5.0的新特性 4.0: Viewpager,fragment,actionbar(标题栏) 5.0:recylerview,tablayout,cardview, toolbar(标题栏替代actionbar)+,drawlayout什么是fragment?Fragment,碎片(fragment分担Activity工作,分离代码的作用)Fragment必须要依托Activity存在的。Fragment必须有自己的布局Fragment生命周期12个 7和activity一致 5个自己独有onAttach(关联activity) onCreate onCreateView(加载布局) ?onActivityCreated(activity创建以后会调用) onStart onResume onPause onStop onDestroyView (销毁布局) onDestroy onDetach(取消activity的关联)退出activity fragment会调用哪些声明周期onPause-onStop-onDestroyView (销毁布局)-onDestroy- onDetachFragment的创建方式? 静态:xml写上Fragment标签 name: 包名+类名 动态:myFragment=new MyFragment();manager=getSupportFragmentManager();transaction=manager.beginTransaction();transaction.add(R.id.layout,myFragment);mit();Fragment+viewpager的实现原理Fragmentpageradapter适配器很关键Fragment之间的通信 Activity--》fragment 1.用fragment对象调用Fragment方法传参 2.静态 3.bundle对象(代替构造传参)myFragment=new MyFragment();//bundle代替构造传参Bundle bundle=new Bundle();bundle.putString(name, 小白);myFragment.setArguments(bundle); //获取Bundle bundle= getArguments(); String str=bundle.getString(name);4.handler(activity发送 fragment收)第一步,我们需要在Activity中定义一个方法用来设置Handler对象。public void setHandler(Handler handler) {mHandler = handler;}第二步,在Fragment中的回调函数onAttach()中得到Fragment所在Activity,并调用setHandler方法,设置Handler。该Handler在Fragment中定义,用来接收消息与Fragment进行交互。@Overridepublic void onAttach(Activity activity) {super.onAttach(activity);mActivity = (MainActivity) activity;mActivity.setHandler(mHandler);}public Handler mHandler = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case 1:text.setText((String) msg.obj);break;}};};第三步,然后我们可以在Activity中发送消息给Fragment中的Hanlder进行交互。public void inter(View view) {Message msg = new Message();msg.obj = edit.getText().toString();msg.what = 1;mHandler.sendMessage(msg);} 5.广播 Fragment--》activity1.getActivity拿到依托的activity对象 (调用activity方法)参考上面handler的方法回调方法上级:你办完事情通知我(实例化接口,实现接口方法)下级:实实在在完成操作的(设计接口,并不需要实例化接口,并且在完成工作后调用接口方法)Activity上级 fragment下级静态广播Fragment的优缺点为activity减少负担,分离代码模块需要依赖activit
文档评论(0)