1.一个类继承了FragmentActivity,如果要跳转要另外一个Activity也是用Intent方法。因为:
fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样
2.使用Fragment的原因
1). Activity间的切换不流畅
2). 模块化Activity,方便做局部动画(有时为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragment来代替,只有在需要的时候才加载Fragment,提高性能)
3.从fragment中通过控件跳到另一个activity
从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的activity,具体代码是这样的:
Intent intent = new Intent();
intent.setActivity(getActivity(), TargetActivity.class);//这里getActivity也可以写成getContext,解释见4
startActivity(intent); //这里用getActivity().startActivity(intent);
如果不返回结果的话,第三行代码没什么区别,如果要返回一个结果的话,可以有类似的两种方法:
//直接从fragment中跳转
startActivityForResult(intent, REQUEST_CODE);
这种写法接收返回的结果要在fragment中重写onActivityResult()方法;
//从activity中跳转
getActivity().startActivityForResult(intent, REQUEST_CODE);
这种写法要在Activity中重写onActivityResult()方法。
4.getContext()
getContext()通常认为返回Activity对象(当然,事实上并不局限于Activity)。
Activity.this指向你所填写的Activity名字的一个实例,也是引用。
getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁
getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文
(getApplicationContext(),XX.class)是通用的,任何时候用这个new出来的intent是不会出错的。因为getApplicationContext()可以获得当前类的上下文