我有一个secnerio,当用户按片段中的“后退”按钮时,需要显示对话框。我尝试了几种方法,但找不到解决方案。有人可以帮忙吗
答案 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
)。
因此,每次按下后退按钮时,您的活动都会检查您的片段是否要自行处理此按,如果是这样,它将为此调用其方法。
如果您有任何问题,请随时在评论中提问。