安卓Fragment 碎片!!!

一, Fragment是什么?
 >Android 3.0以后出现的  Api11 以上  Activity的组成部分
 Fragment(小的Activity)
 Fragment可以显示 UI内容  可以和用户进行交互

 Fragment的主要作用:提高代码的重用性 和用户体验
 可以对Activity组件 进行分组和模块化的管理

 Fragment 有自己的生命周期 可以接受和处理用户的事件 
 可以在Activity中   添加,替换和移除 Fragment

 注意:1,Fragment必须依附Activity
             2,一个Activity可以包含多个Fragment,一个Fragment可以
      被多个Activity使用


二, 如何创建Fragment
 >1,创建一个类继承Fragment
 >2,得到Fragment生命周期方法  onCreateView() (展示UI)

三, Fragment 的显示方式
 >1,静态展示Fragmeng(在布局中直接添加Fragment)
  >1,在布局中<fragment>标签
  >2,id  Fragmeng的唯一标识
  >3,name  添加的是那个Fragmeng

 >2,动态添加Fragment(在布局中添加一个容器,动态代码将Fragmeng添加到容器)
  >1,在布局中添加容器
  >2,在逻辑代码中   获取FragmengManage
  >3,通过Fragmeng的事务
  >4,Fragmeng的事务  将Fragmeng添加相应的容器
  >5,Fragment的事务  提交

四,Activity向Fragment传值

 >Activity:(setArguments(bundle))
  //传值   ActivityToFragment
  Bundle bundle = new Bundle();
  bundle.putString("msg", "今天开会");
  //传值
  myFragment.setArguments(bundle);

 >Fragment:(getArguments()
  //获取传递过来的值
  Bundle bundle = getArguments();
  //获取值
  String msg = bundle.getString("msg");


五, Fragment 向Activity传值 (接口回调)
 >1,创建一个回调接口
 >2,在Activity中实例化回调接口
 >3,将实例化的接口传给Fragment  (getActivity)
 >4,在Fagment中  将值传递给Activity


六, Fragment向Fragment传值
 >1,setArgument()
  //传值
  MyFragment2 myFragment2 = MyFragment2.newInstance(bundle);
  
  MyFragment2 myFragment2 = new MyFragment2();
  myFragment2.setArguments(bundle);

 >2,在Fragment1中找到Fragment2对象  通过对象调方法
  通过Fragment的id  获取Fragment2的对象
  Fragment2 fragment2 = (Fragment2) getFragmentManager().findFragmentById(R.id.rightfragment);
  fragment2.setTextValues(msg);
 
 >3,在Fragment1中找到Fragment2中的控件
  TextView tv = (TextView) getFragmentManager().findFragmentById(R.id.rightfragment).getView().findViewById(R.id.tv_show);
  TextView tv = (TextView) getActivity().findViewById(R.id.tv_show);
  tv.setText(msg);
七, Fragment的生命周期    11个生命周期方法

第一次打开app
09-08 06:05:55.590: E/MainActivity(3786): ==onCreate==
09-08 06:05:55.590: E/MyFragment(3786): ==onAttach==
09-08 06:05:55.590: E/MyFragment(3786): ==onCreate==
09-08 06:05:55.600: E/MyFragment(3786): ==onCreateView==
09-08 06:05:55.600: E/MyFragment(3786): ==onActivityCreated==
09-08 06:05:55.600: E/MainActivity(3786): ==onStart==
09-08 06:05:55.600: E/MyFragment(3786): ==onStart==
09-08 06:05:55.600: E/MainActivity(3786): ==onResume==
09-08 06:05:55.610: E/MyFragment(3786): ==onResume==

按Home键时
09-08 06:07:08.211: E/MyFragment(3786): ==onPause==
09-08 06:07:08.211: E/MainActivity(3786): ==onPause==
09-08 06:07:10.090: E/MyFragment(3786): ==onStop==
09-08 06:07:10.090: E/MainActivity(3786): ==onStop==

重新返回到界面

09-08 06:08:11.391: E/MainActivity(3786): ==onRestart==
09-08 06:08:11.391: E/MainActivity(3786): ==onStart==
09-08 06:08:11.391: E/MyFragment(3786): ==onStart==
09-08 06:08:11.391: E/MainActivity(3786): ==onResume==
09-08 06:08:11.411: E/MyFragment(3786): ==onResume==

按返回键时
09-08 06:09:12.440: E/MyFragment(3786): ==onPause==
09-08 06:09:12.440: E/MainActivity(3786): ==onPause==
09-08 06:09:14.110: E/MyFragment(3786): ==onStop==
09-08 06:09:14.110: E/MainActivity(3786): ==onStop==
09-08 06:09:14.110: E/MyFragment(3786): ==onDestroyView==
09-08 06:09:14.110: E/MyFragment(3786): ==onDestroy==
09-08 06:09:14.110: E/MyFragment(3786): ==onDetach==
09-08 06:09:14.110: E/MainActivity(3786): ==onDestroy==

 


八, V4包中的Fragment使用

 >V4支持Android1.6    

 使用;    * 1,创建一个类  继承V4包的Fragment
   * 2,修改Activity 变成FragmentActivity
   * 3,获取管理者对象   V4 getSupportFragmentManager()  获取事务 V4


 note:用V4的Fragment  全部改成V4的   用app包的  全部用app包

九, listFragment的使用(了解)
 >ListFragment  里面封装了  ListVIew  : id为: android:id="@id/android:list"
 
 >设置数据的方法     点击监听的方法

十,回退栈

.addToBackStack(null)//回退栈     参数:标记   如果没有标记   null
.commit()


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值