安卓老子 2016-09-17 07:08 采纳率: 50%
浏览 1047
已结题

Fragment 多页面,一层层返回

我的项目里面只有一个Activity,其它页面都是Fragment,现在出先的问题是 Fragment
之间的返回,假如我从Fragment A 跳到 Fragmen B 再从 Fragment B 跳到 Fragement C ,当我按手机的返回键的时候,页面C 会直接跳到Activity首页,代码如下,这是系统退出APP的
/**
* 返回按鈕的點擊事件
*/
@Override
public void onBackPressed() {
//Toast.makeText(getApplicationContext(),"回到首页",Toast.LENGTH_SHORT).show();
MyApplication.getInstance().getHomeFragment().list.clear();
MyApplication.getInstance().getHomeFragment().initListDate();
MyApplication.getInstance().getHomeFragment().initShrink();

}
/**
 * 點擊兩次返回鍵返回程序
 *
 * @param keyCode
 * @param event
 * @return
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        exit();
        onBackPressed();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

public void exit() {
    if ((System.currentTimeMillis() - exitTime) > 2000) {
        Toast.makeText(getApplicationContext(), "再按一次退出程序",
                Toast.LENGTH_SHORT).show();
        exitTime = System.currentTimeMillis();
    } else {
        finish();
        System.exit(0);
    }
}
  • 写回答

2条回答 默认 最新

  • C盘无限大 2016-09-17 09:55
    关注

    记录当前显示的fragment,在onKeyDown中判断当前fragment是否是最底层的fragment,不是就返回前面的fragment,

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题