向后按两次退出片段 [英] Double back press to exit from fragment
本文介绍了向后按两次退出片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
由于问题非常相似,但我没有找到确切的答案.我在下面的链接上尝试了答案,但是它不起作用!
Since question is quite similar but I didn't found an exact answer to it. I tried the answer on the link below but it is not working!!
Android Double Back按此按钮可关闭具有以下功能的应用程序碎片
这是我的代码:
public interface OnBackPressedListener {
void onBackPressed();
}
现在是片段:
public class HomeFragment extends Fragment implements View.OnClickListener, OnBackPressedListener{
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
//Checking for fragment count on backstack
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else if (!doubleBackToExitPressedOnce) {
this.doubleBackToExitPressedOnce = true;
Toast.makeText(getActivity(),"Tap again to exit.", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
}
尝试使用以及getSupportFragmentManager(),但突出显示为红色.我需要双击片段(Android中的底部导航栏)以退出应用程序.
Tried using getSupportFragmentManager() as well, but it is highlighted red. I need to double tap from the fragment (a bottom navigation bar in android) to exit from application.
推荐答案
尝试此代码,它将始终有效.
Try this code and it always works.
在顶部添加此
private boolean isFirstBackPressed = false;
现在在 onBackPressed
方法内,添加以下代码.
Now inside onBackPressed
method add below code.
添加此内容:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() != 0){
super.onBackPressed();
}else{
if (isFirstBackPressed) {
super.onBackPressed();
} else {
isFirstBackPressed = true;
showMessage("Press back again to exit");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isFirstBackPressed = false;
}
}, 1500);
}
}
}
这篇关于向后按两次退出片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文