gpt4 book ai didi

android - onBackPress 在 Fragment 中调用什么

转载 作者:行者123 更新时间:2023-11-29 16:10:34 26 4
gpt4 key购买 nike

在 fragment 中我有这个:

onPause(){

super.onPause();
if(flag){
getActivity.finish();
}else{
}
}

onResume(){

flag = true;
super.onResume();
}

还有一个按钮,点击时我将此标志设置为 false:

Button.onClick{
flag = false;
}

思路是:

当点击按钮时,不要完成这个 Activity 。但是当设备 BackButton 被按下时 finish()。

但是这个逻辑是行不通的。原因是,当我按下设备的 BackButton 时,onPause 没有被调用。

这是 Activity 中的第 4 个 fragment 。所以当我按下 BackButton 时,我可以看到第三个 fragment 。我不想这样做。

我在 API 10 设备上使用它,但我的应用程序使用支持库 v4。

谢谢。

最佳答案

如果你想在按下后关闭 Activity,那么重写 Activity 中的 onBackPressed 如下:

public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag("yourfragment");
if (fragment instanceOf YourFragmet) {
finish();
return;
}
super.onBackPressed();
}

如果你想在按钮点击时关闭activity,那么你可以调用

Button.onClick{
getActivity().onBackPressed();
}

Button.onClick{
getActivity().finish();
}

如果当您在 Fragment 之间转换时,您调用 addToBackStack() 作为 FragmentTransaction 的一部分,那么后退按钮会将您带到返回堆栈顶部的 fragment

关于android - onBackPress 在 Fragment 中调用什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13758597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com