向后按几个片段时如何显示对话框

时间:2018-10-25 20:54:17

标签: android android-fragments

我有一个secnerio,当用户按片段中的“后退”按钮时,需要显示对话框。我尝试了几种方法,但找不到解决方案。有人可以帮忙吗

1 个答案:

答案 0 :(得分:1)

您可以创建一个界面

public interface OnBackPressedListener {
    void onBackPressed();
}

并按您的片段实现它。 您需要以片段的onBackPressed()方法显示对话框。并在您的主要活动中覆盖:

@Override
public void onBackPressed() {
    final Fragment currentFragment = getSupportFragmentManager().getFragments().get(0);
    if (currentFragment instanceof OnBackPressedListener)
        ((OnBackPressedListener) currentFragment).onBackPressed();
    else if (!getSupportFragmentManager().popBackStack())
        finish();    
}

请注意,假设您一次只能激活一个片段(必须始终在replace()上调用fragmentManager)。

因此,每次按下后退按钮时,您的活动都会检查您的片段是否要自行处理此按,如果是这样,它将为此调用其方法。

如果您有任何问题,请随时在评论中提问。