安卓老子 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,

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料