所以我有一个有效的解决方案,似乎不是理想的,只需要确认 - 所以我有一个活动,其中3个片段一次显示一个 - 我需要阻止其中两个片段的默认返回操作当按下后退按钮时没有任何事情发生(目前仍在开发中)。
所以我做的是我使用了一个界面
onCloseRequest
在活动上设置变量 当我改变活动中的当前片段时,例如片段A的集合1,片段B的片段2和片段C的片段3,因此当移动到片段3时,这是片段2中的代码片段 -
//top of activity snippet
public class StudyKitActivity extends AppCompatActivity implements OnStudyKitBackListener{
private int fragment_id;
.
.
.
.
//interface method
@Override
public void onBackChanged(int fragment_id) {
this.fragment_id = fragment_id;
}
我在我的活动的onBackpressed中进行了覆盖,以检查该变量的值,并执行默认的OnBackPressed或者不执行任何操作 -
onStudyKitBackListener.onBackChanged(3);
StudyKitResultFragment studyKitResultFragment = StudyKitResultFragment.getInstance(examResult);
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, studyKitResultFragment).addToBackStack("exam_result").commit();
我提出了这个cos其他解决方案,比如设置标签并尝试获取片段的标签或通过检查当前片段ID对我不起作用,这就像我预期的那样工作但我还没有看到它只是想要知道是否有替代解决方案。