我需要添加到我的应用程序的可能性,以显示为用户退出应用的消息(也就是你想离开?是 - 否)Android的,有多少碎片离开
我使用的片段所以我不真的知道哪个是最后显示“onBackPressed”消息的最后一个,那么有没有办法知道剩下多少片断或者我是否错过了一些东西?
我需要添加到我的应用程序的可能性,以显示为用户退出应用的消息(也就是你想离开?是 - 否)Android的,有多少碎片离开
我使用的片段所以我不真的知道哪个是最后显示“onBackPressed”消息的最后一个,那么有没有办法知道剩下多少片断或者我是否错过了一些东西?
getSupportFragmentManager()getBackStackEntryCount()
是我需要
@Override
public void onBackPressed() {
if(getSupportFragmentManager().getBackStackEntryCount() == 0){
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
MainActivity.this.finish();
break;
case DialogInterface.BUTTON_NEGATIVE:
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.leave_app)).setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
} else {
super.onBackPressed();
}
}
如果您正在使用ViewPager
您可以使用ViewPager的getCurrentItem() method
得到currentFragment号,
然后实现的Activity
的onBackPressed
方法,也将不考虑任何片段的用户是在叫,但你仍可以比较当前片段编号与片段总数并显示一条消息。
private boolean exit = false;
@Override
public void onBackPressed() {
// implement a logic on backPressed, I have added a logic
// it show a toast, if the user presses back again within
// three seconds, the activity closes.
if (exit)
Home.this.finish();
else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
exit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
exit = false;
}
}, 3 * 1000);
}
}
谢谢,但我想在我的最后一个片段中显示,从@Tom Reznik提供的答案是我需要的,这是“getBackStackEntryCount()” –
@ user2427819好吧,那么你可以使用FragmentManager的findFragmentById()方法获取当前片段ID,并将其与最后一个片段的片段ID进行比较,并显示一条消息。 –
谢谢! getBackStackEntryCount()是我需要的 –