回退堆栈
在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状态。
分享到:
相关推荐
在Activity或Fragment中,通过`TagView#setTags(List)`方法传入标签数据。 4. 注意事项与问题解决: - 兼容性问题:确保项目支持库版本与该库兼容,避免因版本差异导致的运行错误。 - 自适应布局:如果标签数量...
实际应用中,开发者可以参考《Android Studio程序设计案例教程》中的相关章节,书中提供了详细的案例来帮助理解如何在实际项目中使用和管理Fragment。通过实践这些案例,你可以更深入地掌握Fragment的使用技巧,以及...
- `PagerAdapter`和`FragmentPagerAdapter`:适配器类,用于在`ViewPager`中展示`Fragment`序列。 - `IntentCompat`:提供了与Intent相关的辅助方法,如`Intent.createChooser()`。 4. **使用源码的好处**: - *...
"Android Misc Widgets" 是一个专为Android平台设计的开源项目,其主要目的是提供一系列具有特殊效果和动画的组件,供开发者学习和参考。这个项目的源码涵盖了多种Android小部件的实现,是Android开发者提升技能、...
在Android应用开发中,Fragment是Activity的一个模块化组件,它可以在Activity中添加、移除或替换,以实现更复杂的用户界面。然而,当用户离开一个Activity或者设备发生配置更改(如屏幕旋转)时,Fragment的状态...
在实际项目中,开发者可以参考以下代码片段使用Android-Curve-Fit: ```java // 初始化GoogleMap GoogleMap map = mapView.getMap(); map.setMyLocationEnabled(true); // 获取轨迹点 List轨迹Points = ...; // ...
【标题】:“ToDoList - Fragment - 代码”指的是在Android应用开发中,使用Fragment实现一个待办事项(ToDoList)的经典案例。Fragment是Android SDK中的一个重要组件,它允许开发者在一个活动中展示多个相互独立的...
这个Demo是开发者为了展示如何利用`android-gif-drawable`库在Android应用中播放GIF文件而创建的,非常适合初学者参考学习。 首先,我们需要了解`android-gif-drawable`库的核心功能。这个库允许开发者在ImageView...
标题中的"navigation-keep-fragment-sample"暗示了这是一个关于Android应用程序开发的项目,特别是与导航组件(Navigation Component)和Fragment管理相关的。在这个示例中,开发者可能探讨了如何在使用Android ...
在Android应用开发中,微信Android客户端的实现是一个典型的案例,它展示了如何利用单个Activity和多个Fragment构建一个功能丰富的移动应用。在这个项目中,`WeChatDemo-master`压缩包文件包含了一个模仿微信功能的...
此为示例代码,详细讲解请参考博文: http://blog.csdn.net/tangron/article/details/22037789 如对资源内容有疑问,请到博客中留言。 欢迎大家评阅,谢谢
- `Fragment`管理:`ViewPager`通常配合`Fragment`使用,因此需要理解`FragmentManager`的生命周期和如何在`ViewPager`中添加和管理`Fragment`。 - 动画效果:实现粘性效果可能涉及到`ObjectAnimator`、`...
完成上述第二点以后,还有需要解决的难题,是宿主程序资源id和插件程序id重复的问题。 这个问题解决办法也很简单 我们知道,资源id是在编译时生成的,其生成的规则是0xPPTTNNNN PP段,是用来标记apk的,默认情况下...
在Android中,可以使用MediaPlayer类处理媒体播放,或者使用ExoPlayer库,它提供了更高级的功能和更好的性能。为Player Activity设置动画可以增强用户体验,例如,可以使用滑入或淡入效果来表示Activity的启动,或者...
(eclipse没有其他项目的话手动建一个就有了,Android是在Android 3.0 (API level 11)开始引入Fragment的,3.0以上开始起为了兼容3.0以下的需要加入这个jar)。 第四步: 右键分别点击core目录和android-...
本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下: 前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析...
这个"Android参考源码-一个登陆和注册界面.zip"提供了实现这些功能的实例代码,对于初学者和有经验的开发者来说都是一个有价值的资源。 首先,让我们探讨登录界面的设计。在Android中,通常会使用XML布局文件来定义...
本示例"Android参考源码-嵌套TabHost示例.zip"提供了如何在Android应用中实现嵌套TabHost的方法。嵌套TabHost意味着在一个TabHost内嵌套另一个TabHost,这样可以创建更为复杂和层次化的用户界面。 首先,我们需要...
【Android应用源码---答题(考试)app.zip】是一个包含Android应用源代码的压缩包,适合开发者学习和参考。这个应用可能是一个实现在线答题或考试功能的软件,它可以帮助我们理解如何在Android平台上构建类似的系统...
`android-support-v4.jar`库包含了大量适用于所有API级别的类和方法,它能够帮助开发者在低版本的Android系统上实现高级功能,如碎片(Fragments)、Loader、BroadcastReceiver等。由于早期的Android设备碎片化严重,...