封装代码和UI利器—Fragment(二)
来源:互联网 发布:js true false 编辑:程序博客网 时间:2024/06/05 19:19
上期回顾了Fragment技术的来龙去脉,今天我主要是复习学习Fragment的生命周期,学习Fragment 的生命周期应该与Activity的生命周期同时复习,顺便做个比较。
Activity的生命周期方法有7个,而Fragment的生命周期方法多达11个。
上面我画了一张图,直角矩形代表的是Fragment的生命周期的过程,圆角矩形飙到的是Activity的生命周期。
下面给出一个实例
package com.fragmentCyle;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class MyFragment1 extends Fragment{@Overridepublic void onInflate(Activity activity, AttributeSet attrs,Bundle savedInstanceState) {// TODO Auto-generated method stubLog.d("Fragment1", "onInflate");Log.d("Fragment1_onInflate_activity_stringResource", activity.getResources().getString(R.id.action_settings));Log.d("fragment1_onInflate_class", attrs.getAttributeValue(null,"class"));//无法获得Log.d("Fragment1_onInflate_getActivity", String.valueOf(getActivity()));Log.d("Fragment1_onInflate_saveInstancesteate", String.valueOf(savedInstanceState));super.onInflate(activity, attrs, savedInstanceState);}@Overridepublic void onAttach(Activity activity) {// TODO Auto-generated method stub//无法获得EditTextLog.d("Fragment_onAttach_activity_Editext", String.valueOf(activity.findViewById(R.id.myEditText)));Log.d("Fragment_onAttach_activity_Editext", String.valueOf(getActivity().findViewById(R.id.myEditText)));super.onAttach(activity);}@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.first_fragment, null);Log.d("Fragment_onCreateView_activity_Editext", String.valueOf(getActivity().findViewById(R.id.myEditText)));Log.d("Fragment1_onCreateView_EditText", String.valueOf(view.findViewById(R.id.myEditText)));return view;}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {// TODO Auto-generated method stubLog.d("Fragment_onViewCreated_activity_Editext", String.valueOf(getActivity().findViewById(R.id.myEditText)));Log.d("Fragment1_onViewCrated_EditText", String.valueOf(view.findViewById(R.id.myEditText)));super.onViewCreated(view, savedInstanceState);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {// TODO Auto-generated method stubLog.d("Fragment_onActivityCreated_activity_Editext", String.valueOf(getActivity().findViewById(R.id.myEditText)));super.onActivityCreated(savedInstanceState);}@Overridepublic void onStart() {// TODO Auto-generated method stubsuper.onStart();}@Overridepublic void onResume() {// TODO Auto-generated method stubsuper.onResume();}@Overridepublic void onPause() {// TODO Auto-generated method stubsuper.onPause();}@Overridepublic void onStop() {// TODO Auto-generated method stubsuper.onStop();}@Overridepublic void onDestroyView() {// TODO Auto-generated method stubsuper.onDestroyView();}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}@Overridepublic void onDetach() {// TODO Auto-generated method stubsuper.onDetach();}}
package com.fragmentCyle;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class MyFragment2 extends Fragment{@Overridepublic void onActivityCreated(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onActivityCreated(savedInstanceState);Log.d("onActivityCreated", "onActivityCreated");}@Overridepublic void onAttach(Activity activity) {// TODO Auto-generated method stubsuper.onAttach(activity);}@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.second_fragment, null);return view;}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}@Overridepublic void onDestroyView() {// TODO Auto-generated method stubsuper.onDestroyView();}@Overridepublic void onDetach() {// TODO Auto-generated method stubsuper.onDetach();}@Overridepublic void onInflate(Activity activity, AttributeSet attrs,Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onInflate(activity, attrs, savedInstanceState);}@Overridepublic void onPause() {// TODO Auto-generated method stubsuper.onPause();}@Overridepublic void onResume() {// TODO Auto-generated method stubsuper.onResume();}@Overridepublic void onStart() {// TODO Auto-generated method stubsuper.onStart();}@Overridepublic void onStop() {// TODO Auto-generated method stubsuper.onStop();}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onViewCreated(view, savedInstanceState);}}
package com.fragmentCyle;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.view.Menu;public class FragmentCycleActivity extends FragmentActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
错误分析:
引起这个错误的原因在导入了import android.support.v4.app.Fragment; 导入这个包必须继承FragmentActivity .
0 0
- 封装代码和UI利器—Fragment(二)
- 封装代码和UI的利器—Fragment(一)
- 封装UI和代码利器—Fragment(三)
- 封装UI和代码利器—Fragment(四)
- 封装代码和UI利器—Fragment(五)
- 封装UI和代码利器—Fragment(六)
- 【UI模块】Fragment之二(周期和通信)
- Code Fragment-封装重复代码的代码
- 客户端封装Fragment和Activity
- Activity和fragment的封装
- Android学习路线(二十一)运用Fragment构建动态UI——创建一个Fragment
- Android学习路线(二十三)运用Fragment构建动态UI——Fragment间通讯
- fragment 深入理解 及 代码 封装
- 代码打补丁的利器——diff和patch
- UI调试利器——Reveal
- Base封装(二)-- 封装属于自己的Library(UI篇)
- Android学习路线(二十二)运用Fragment构建动态UI——构建一个灵活的UI
- Android:Activity和Fragment交互、Fragment控件UI升级相关内容
- Java集合类
- 模板
- 正则表达式
- 深入浅出mfc 系列 第14章MFC 多线程程序设计
- 请教IFeatrue读取信息问题
- 封装代码和UI利器—Fragment(二)
- Activity 生命周期
- Unity3D脚本18:可视化辅助设置类 Gizmos
- 算法基础(五):二叉树(基础)
- tcp的使用
- node.js 和v8的理解
- matlab2
- 6174问题
- 一个网店的数据库设计