百恒网络
实现fragment生命周期的方法
  • 百恒服务
  • APP开发
  • 网页案例
  • 网页知识
  • 关于我们
  • 联系我们
  • 实现fragment生命周期的方法

    2017-05-12 16:21:02 3339
           今天,南昌网络公司-百恒网络给大家介绍一下实现fragment生命周期的方法,供大家参考、学习,希望对大家有所帮助。
           CrimeFragment类是与模型及视图对象交互的控制器,用于显示特定crime的明细信息,并在用户修改这些信息后立即进行更新。

           在GeoQuiz应用中,activity通过其生命周期方法完成了大部分逻辑控制工作。而在CriminalIntent应用中,这些工作是由fragment的生命周期方法完成的。fragment的许多生命周期方法对应着我们熟知的Activity方法,如onCreate(Bundle)方法。
           在CrimeFragment.java中,新增一个Crime实例成员变量,实现Fragment.onCreate(Bundle)方法,如下代码清单所示。
           覆盖Fragment.onCreate(Bundle)方法(CrimeFragment.java)
           public class CrimeFragment extends Fragment {
           private Crime mCrime;
           @Override
           public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           mCrime = new Crime();
           }
           }
           需注意以上实现代码中的以下几点:
           首先,Fragment.onCreate(Bundle)是公共方法,而Activity.onCreate(Bundle)是保护方法。Fragment.onCreate(...)方法及其他Fragment生命周期方法必须是公共方法,因为托管fragment的activity要调用它们。
           其次,类似于activity,fragment同样具有保存及获取状态的bundle。如同使用Activity.onSaveInstanceState(Bundle)方法那样,我们也可以根据需要覆盖Fragment.onSave-InstanceState(Bundle)方法。
           另外, fragment的视图并没有在Fragment.onCreate(...)方法中生成。虽然我们在Fragment.onCreate(...)方法中配置了fragment实例,但创建和配置fragment视图是另一个fragment生命周期方法完成的:
           public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
           该方法实例化fragment 视图的布局, 然后将实例化的View 返回给托管activity 。
           LayoutInflater及ViewGroup是实例化布局的必要参数。Bundle用来存储恢复数据,可供该方法从保存状态下重建视图。
           在CrimeFragment.java中,添加onCreateView(...)方法的实现代码,从fragment_crime.xml布局中实例化并返回视图,如下代码所示。
           覆盖onCreateView(...)方法(CrimeFragment.java)
           public class CrimeFragment extends Fragment {
           private Crime mCrime;
           @Override
           public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           mCrime = new Crime();
           }
           @Override
           public View onCreateView(LayoutInflater inflater, ViewGroup container,
           Bundle savedInstanceState) {
           View v = inflater.inflate(R.layout.fragment_crime, container, false);
           return v;
           }
           }
           在onCreateView(...) 方法中, fragment 的视图是直接通过调用LayoutInflater.inflate(...)方法并传入布局的资源ID生成的。第二个参数是视图的父视图,我们通常需要父视图来正确配置组件。第三个参数告知布局生成器是否将生成的视图添加给父视图。这里,我们传入了false参数,因为我们将以activity代码的方式添加视图。
           关于实现fragment生命周期的方法,百恒网络今天就讲到这里,了解更多关于南昌APP开发、网站建设、微信开发、电商购物网站开发、网络营销等方面的资讯,欢迎访问百恒网络网站,网址:http://www.nczwz.com/,或者来电咨询百恒网络,十多年资深建站经验,值得信赖!
    展开分享
    服务
    案例
    首页
    动态
    联系
    咨询