`

Android类参考---Fragment(二)

 
阅读更多

回退堆栈

在Fragment中被编辑的事务能够放在它自己的Activity中回退堆栈内。当用户在该Activity中按下返回按钮时,在回退堆栈中的任何事务在Activity自己被结束之前会被弹出堆栈。

例如,实例化一个带有整数参数的简单的Fragment对象,并且把这个整数显示在它的UI的一个TextView中:

publicstaticclassCountingFragmentextendsFragment{
int mNum;

/**
* Create a new instance of CountingFragment, providing "num"
* as an argument.
*/

staticCountingFragment newInstance(int num){
CountingFragment f =newCountingFragment();

// Supply num input as an argument.
Bundle args =newBundle();
args
.putInt("num", num);
f
.setArguments(args);

return f;
}

/**
* When creating, retrieve this instance's number from its arguments.
*/

@Override
publicvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mNum
= getArguments()!=null? getArguments().getInt("num"):1;
}

/**
* The Fragment's UI is just a simple text view showing its
* instance number.
*/

@Override
publicView onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState){
View v = inflater.inflate(R.layout.hello_world, container,false);
View tv = v.findViewById(R.id.text);
((TextView)tv).setText("Fragment #"+ mNum);
tv
.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
return v;
}
}

用下面的方法创建一个新的Fragment实例,用它来替换当前被显示的Fragment实例,并把这种改变发布到回退堆栈上:

void addFragmentToStack(){
mStackLevel
++;

// Instantiate a new fragment.
Fragment newFragment =CountingFragment.newInstance(mStackLevel);

// Add the fragment to the activity, pushing this transaction
// on to the back stack.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft
.replace(R.id.simple_fragment, newFragment);
ft
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft
.addToBackStack(null);
ft
.commit();
}

每次调用上面这个方法之后,就会在堆栈上增加一个新的实体,并且按下回退键时,会把它从堆栈中弹出,并给用户返回之前的Activity状态。

分享到:
评论

相关推荐

    文本显示类Android-Cloud-TagView-Plus.rar

    在Activity或Fragment中,通过`TagView#setTags(List)`方法传入标签数据。 4. 注意事项与问题解决: - 兼容性问题:确保项目支持库版本与该库兼容,避免因版本差异导致的运行错误。 - 自适应布局:如果标签数量...

    Android应用开发-Fragment.pptx

    实际应用中,开发者可以参考《Android Studio程序设计案例教程》中的相关章节,书中提供了详细的案例来帮助理解如何在实际项目中使用和管理Fragment。通过实践这些案例,你可以更深入地掌握Fragment的使用技巧,以及...

    Android v4包的源码 android-support-v4-src.jar

    - `PagerAdapter`和`FragmentPagerAdapter`:适配器类,用于在`ViewPager`中展示`Fragment`序列。 - `IntentCompat`:提供了与Intent相关的辅助方法,如`Intent.createChooser()`。 4. **使用源码的好处**: - *...

    android-misc-widgets

    "Android Misc Widgets" 是一个专为Android平台设计的开源项目,其主要目的是提供一系列具有特殊效果和动画的组件,供开发者学习和参考。这个项目的源码涵盖了多种Android小部件的实现,是Android开发者提升技能、...

    Android-StatedFragment-保存Fragment的状态

    在Android应用开发中,Fragment是Activity的一个模块化组件,它可以在Activity中添加、移除或替换,以实现更复杂的用户界面。然而,当用户离开一个Activity或者设备发生配置更改(如屏幕旋转)时,Fragment的状态...

    Android-Curve-Fit是一个用于在GoogleMapsAndroidAPIv2上绘制轨迹的Android库

    在实际项目中,开发者可以参考以下代码片段使用Android-Curve-Fit: ```java // 初始化GoogleMap GoogleMap map = mapView.getMap(); map.setMyLocationEnabled(true); // 获取轨迹点 List轨迹Points = ...; // ...

    ToDoList - Fragment - 代码

    【标题】:“ToDoList - Fragment - 代码”指的是在Android应用开发中,使用Fragment实现一个待办事项(ToDoList)的经典案例。Fragment是Android SDK中的一个重要组件,它允许开发者在一个活动中展示多个相互独立的...

    android-gif-drawable-dem

    这个Demo是开发者为了展示如何利用`android-gif-drawable`库在Android应用中播放GIF文件而创建的,非常适合初学者参考学习。 首先,我们需要了解`android-gif-drawable`库的核心功能。这个库允许开发者在ImageView...

    navigation-keep-fragment-sample,.zip

    标题中的"navigation-keep-fragment-sample"暗示了这是一个关于Android应用程序开发的项目,特别是与导航组件(Navigation Component)和Fragment管理相关的。在这个示例中,开发者可能探讨了如何在使用Android ...

    Android-单个Activity多个Fragment实现微信Android客户端

    在Android应用开发中,微信Android客户端的实现是一个典型的案例,它展示了如何利用单个Activity和多个Fragment构建一个功能丰富的移动应用。在这个项目中,`WeChatDemo-master`压缩包文件包含了一个模仿微信功能的...

    android--fragment详解

    此为示例代码,详细讲解请参考博文: http://blog.csdn.net/tangron/article/details/22037789 如对资源内容有疑问,请到博客中留言。 欢迎大家评阅,谢谢

    android-sticky-viewpager.zip

    - `Fragment`管理:`ViewPager`通常配合`Fragment`使用,因此需要理解`FragmentManager`的生命周期和如何在`ViewPager`中添加和管理`Fragment`。 - 动画效果:实现粘性效果可能涉及到`ObjectAnimator`、`...

    Android插件框架Android-Plugin-Framework.zip

    完成上述第二点以后,还有需要解决的难题,是宿主程序资源id和插件程序id重复的问题。 这个问题解决办法也很简单 我们知道,资源id是在编译时生成的,其生成的规则是0xPPTTNNNN PP段,是用来标记apk的,默认情况下...

    安卓FragmentTab选项卡相关-分享一款Android中的-playerActvity和Fragment的进入动画.rar

    在Android中,可以使用MediaPlayer类处理媒体播放,或者使用ExoPlayer库,它提供了更高级的功能和更好的性能。为Player Activity设置动画可以增强用户体验,例如,可以使用滑入或淡入效果来表示Activity的启动,或者...

    Android ZXing 2.3.0源码及编译后的core-2.3.0.jar和android-integration-2.3.0.jar打包亲测可用

    (eclipse没有其他项目的话手动建一个就有了,Android是在Android 3.0 (API level 11)开始引入Fragment的,3.0以上开始起为了兼容3.0以下的需要加入这个jar)。 第四步: 右键分别点击core目录和android-...

    Android开发实现Fragment监听返回键事件功能的方法

    本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下: 前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析...

    Android参考源码-一个登陆和注册界面.zip

    这个"Android参考源码-一个登陆和注册界面.zip"提供了实现这些功能的实例代码,对于初学者和有经验的开发者来说都是一个有价值的资源。 首先,让我们探讨登录界面的设计。在Android中,通常会使用XML布局文件来定义...

    Android参考源码-嵌套TabHost示例.zip

    本示例"Android参考源码-嵌套TabHost示例.zip"提供了如何在Android应用中实现嵌套TabHost的方法。嵌套TabHost意味着在一个TabHost内嵌套另一个TabHost,这样可以创建更为复杂和层次化的用户界面。 首先,我们需要...

    Android应用源码---答题(考试)app.zip

    【Android应用源码---答题(考试)app.zip】是一个包含Android应用源代码的压缩包,适合开发者学习和参考。这个应用可能是一个实现在线答题或考试功能的软件,它可以帮助我们理解如何在Android平台上构建类似的系统...

    android-support-v4.jar

    `android-support-v4.jar`库包含了大量适用于所有API级别的类和方法,它能够帮助开发者在低版本的Android系统上实现高级功能,如碎片(Fragments)、Loader、BroadcastReceiver等。由于早期的Android设备碎片化严重,...

Global site tag (gtag.js) - Google Analytics