Android onBackPress在片段中调用什么
在一个片段中,我有这样一句话:Android onBackPress在片段中调用什么,android,fragment,onresume,onpause,Android,Fragment,Onresume,Onpause,在一个片段中,我有这样一句话: onPause(){ super.onPause(); if(flag){ getActivity.finish(); }else{ } } onResume(){ flag = true; super.onResume(); } 还有一个按钮,单击后我将此标志设置为false: Button.onClick{ flag = false; } 这个想法是: 单击按钮时,不要完成此活动。但当按下设备BackButton时,完成() 但这种逻辑是行不通的。原
onPause(){
super.onPause();
if(flag){
getActivity.finish();
}else{
}
}
onResume(){
flag = true;
super.onResume();
}
还有一个按钮,单击后我将此标志设置为false:
Button.onClick{
flag = false;
}
这个想法是:
单击按钮时,不要完成此活动。但当按下设备BackButton时,完成()
但这种逻辑是行不通的。原因是,当我按下设备的BackButton时,onPause没有被调用
这是活动中的第四个片段。因此,当我按下BackButton时,我可以看到第三个片段。我不想这样
我在API 10设备上使用此功能,但我的应用程序使用支持库v4。
谢谢。如果您想在“back press”上关闭“activity”,请在“activity活动”中覆盖“onBackPressed”上的
,如下所示:
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag("yourfragment");
if (fragment instanceOf YourFragmet) {
finish();
return;
}
super.onBackPressed();
}
如果要关闭按钮上的活动,请单击,然后可以调用
Button.onClick{
getActivity().onBackPressed();
}
或
如果在片段之间转换时,调用addToBackStack()作为FragmentTransaction的一部分,则如果要关闭back press上的活动,则“后退”按钮会将您带到back stack顶部的片段,然后在活动中覆盖on backpressed
,如下所示:
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag("yourfragment");
if (fragment instanceOf YourFragmet) {
finish();
return;
}
super.onBackPressed();
}
如果要关闭按钮上的活动,请单击,然后可以调用
Button.onClick{
getActivity().onBackPressed();
}
或
如果在片段之间转换时,调用addToBackStack()作为FragmentTransaction的一部分,则“后退”按钮会将您带到后堆栈顶部的片段为什么不能使用片段的OnDeach()?按下Back键时,将调用片段上的onDetach()以移除该片段
@Override
public void onDetach() {
super.onDetach();
if(flag){
getActivity.finish();
}else{
}
}
为什么不能使用片段的OnDetch()?按下Back键时,将调用片段上的onDetach()以移除该片段
@Override
public void onDetach() {
super.onDetach();
if(flag){
getActivity.finish();
}else{
}
}
不,我不想在按钮单击时关闭活动。我只想在BackisPressed时关闭活动我应该在onViewCreated()中使用它吗??当fragment.getView被onViewCreatedNo的view参数替换时,它在反压时不会到达此代码。是否有任何特定的块我必须使用它。比如onCreateView或其他东西;没有什么比onBackPressed更容易覆盖。可能是因为我使用的是targetRapi=15;但当按下device back时,必须在活动中正确触发片段的onPause()?onBackPressed,而不是fragmentNo。我不想在ButtonClicked上关闭活动。我只想在BackisPressed时关闭活动我应该在onViewCreated()中使用它吗??当fragment.getView被onViewCreatedNo的view参数替换时,它在反压时不会到达此代码。是否有任何特定的块我必须使用它。比如onCreateView或其他东西;没有什么比onBackPressed更容易覆盖。可能是因为我使用的是targetRapi=15;但当按下device back时,必须在活动中正确触发片段的onPause()?onBackPressed,而不是调用onDetach()时的片段?在Backback弹出窗口??是的,当您按Back键时,前景片段将被分离,并显示先前连接的片段。何时调用onDetach()
?在Backback弹出窗口??是,当您按下Back键时,前景碎片将被分离,之前连接的碎片将被显示。