fragment中点击back键的时候会跳出程序,如何解决。

来源:互联网 发布:vmware 网络连接模式 编辑:程序博客网 时间:2024/06/07 07:27
通过点击按钮添加了一个碎片之后,这时按下Back 键程序就会直接退出。如果这里我
们想模仿类似于返回栈的效果,按下Back 键可以回到上一个碎片,该如何实现呢?
其实很简单,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();

这里我们在事务提交之前调用了FragmentTransaction 的addToBackStack()方法,它可以
接收一个名字用于描述返回栈的状态,一般传入null 即可。现在重新运行程序,并点击按钮
将AnotherRightFragment 添加到活动中,然后按下Back 键,你会发现程序并没有退出,而
是回到了RightFragment 界面,再次按下Back 键程序才会退出。
0 0