我正在开发一个使用多个片段的应用程序,这些片段都是一个名为“Setup”的扩展名
课程如下:
这是应用程序片段的流程,注意箭头是双向的还是单向的,以指示用户可以退出片段的位置。
的流程我想锁定用户退出安装活动,因此他必须做出选择。为此,我使用此代码:
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()
中读到的内容正确流程:
- 进入SetupFragment,按返回:
醇>onBackPressed:this.getclass返回类SetupFragment
现在错误的流程:
- 进入SetupFragment,然后进入MoreFragment,请按:
醇>onBackPressed:this.getclass返回类SetupFragment $ MoreFragment
这是正确的行为,我们现在在SetupFragment中,按回 再一次:
onBackPressed:this.getclass返回类SetupFragment $ MoreFragment
这是不正确的,我们在SetupFragment中,但getclass返回 MoreFragment类。
我怀疑这可能与泛型和一些奇怪的Android方式有关。 有没有人遇到过这种奇怪的行为?