本篇博文最后修改时间:2016年9月6日,8:33。
一、简介
本篇介绍在碎片中模拟返回栈。
二、实验平台
系统版本:Windows7 家庭普通版 32位操作系统。
三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/omoiato
联系方式:315878825@qq.com
Java零基础入门交流群:541462902
四、在碎片中模拟返回栈
FragmentTransaction 中提供了一个addToBackStack()方法,
可以用于将一个事务添加到返回栈中,修改MainActivity 中的代码,如下所示:
public class MainActivity extends Activity implements OnClickListener
{
……
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button:
AnotherRightFragment fragment = new AnotherRightFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.
beginTransaction();
transaction.replace(R.id.right_layout, fragment);
transaction.addToBackStack(null);
transaction.commit();
break;
default:
break;
}
}
}
这里我们在事务提交之前调用了FragmentTransaction 的addToBackStack()方法,
它可以接收一个名字用于描述返回栈的状态,一般传入null 即可。
现在重新运行程序,并点击按钮将AnotherRightFragment 添加到活动中,然后按下Back 键,
你会发现程序并没有退出,而是回到了RightFragment 界面,再次按下Back 键程序才会退出。