使用先前的片段对象

时间:2016-11-14 15:16:02

标签: java android class android-fragments onbackpressed

我正在开发一个使用多个片段的应用程序,这些片段都是一个名为“Setup”的扩展名

课程如下:

  • 安装程序扩展CustomFragment
  • 条款扩展设置
  • 隐私扩展设置
  • 更多扩展设置
  • 确认扩展设置
  • 已启用扩展设置

这是应用程序片段的流程,注意箭头是双向的还是单向的,以指示用户可以退出片段的位置。

app flow of the app

的流程

我想锁定用户退出安装活动,因此他必须做出选择。为此,我使用此代码:

public boolean onBackPressed() {
Class classOfCurrentFragment = this.getClass();

if (classOfCurrentFragment == Fragment.class) {
    return true;
} else if (classOfCurrentFragment == TermsFragment.class
        || classOfCurrentFragment == PrivacyFragment.class
        || classOfCurrentFragment == ConfirmFragment.class
        || classOfCurrentFragment == MoreFragment.class) {
    return false;
} else if (classOfCurrentFragment == EnabledFragment.class) {
    return true;
} else {
    return false;
}

}

这个功能的结果并不像我预期的那样。 返回键在SetupFragment中有效,只要我不打开另一个

这是我在classOfCurrentFragment.toString()

中读到的内容

正确流程:

  
      
  1. 进入SetupFragment,按返回:
  2.         

    onBackPressed:this.getclass返回类SetupFragment

现在错误的流程:

  
      
  1. 进入SetupFragment,然后进入MoreFragment,请按:
  2.         

    onBackPressed:this.getclass返回类SetupFragment $ MoreFragment

         

    这是正确的行为,我们现在在SetupFragment中,按回   再一次:

         

    onBackPressed:this.getclass返回类SetupFragment $ MoreFragment

         

    这是不正确的,我们在SetupFragment中,但getclass返回   MoreFragment类。

我怀疑这可能与泛型和一些奇怪的Android方式有关。 有没有人遇到过这种奇怪的行为?

0 个答案:

没有答案