在我的Main_Activity中,我有一个按钮,当OnClicked打开新的Game_Activity时,在我的Game_Activity的OnCreate中我有:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_true_false);
level1GameInstructions = new Level1GameInstructions();
fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.game_activity, instructions).commit();
}
打开片段,然后在单击按钮时在Fragment类中,我想关闭当前片段,这样我就完成了这个:
View.OnClickListener playBtnListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().onBackPressed();
}
};
但是,由于某种原因,这会返回Main_Activity而不是Game_Activity。有谁知道为什么?
答案 0 :(得分:0)
很高兴使用这两种方法代替您的代码:
public void removeFragment(@NonNull String tag) {
getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag(tag)).commit();
}
public void replaceFragment(@IdRes int containerId, Fragment fragment, @Nullable String tag) {
getSupportFragmentManager().beginTransaction().replace(containerId, fragment, tag).commit();
}
只需用一些标记替换所需的片段,然后通过该标记将其删除。