再次点击以通过导航抽屉退出应用。

huangapple go评论94阅读模式
英文:

Click again to exit from the app using Navigation drawer

问题

这是翻译好的部分:

  1. private boolean doubleBackToExitPressedOnce = false;
  2. @Override
  3. public void onBackPressed() {
  4. if (drawer.isDrawerOpen(GravityCompat.START) && doubleBackToExitPressedOnce) {
  5. super.onBackPressed();
  6. } else if (drawer.isDrawerOpen(GravityCompat.START)) {
  7. drawer.closeDrawer(GravityCompat.START);
  8. } else if (!doubleBackToExitPressedOnce) {
  9. doubleBackToExitPressedOnce = true;
  10. Toast.makeText(this, "再按一次返回键退出", Toast.LENGTH_SHORT).show();
  11. new Handler().postDelayed(new Runnable() {
  12. @Override
  13. public void run() {
  14. doubleBackToExitPressedOnce = false;
  15. }
  16. }, 2000);
  17. }
  18. }

希望这对你有所帮助。如果有其他疑问,请随时提问。

英文:

I have a problem with this code. I wanna when the drawer is close and the user clicks back the drawer open, and when it opens and the user wanna to exit from the app show message said: "press again to exit". how can I do that with this code?

I wanna it be like this

press back -- open drawer;

press back again -- show message;

press back again -- exit the app;

Here's my code

  1. private boolean doubleBackToExitPressedOnce = false;
  2. @Override
  3. public void onBackPressed() {
  4. if (drawer.isDrawerOpen(GravityCompat.START) && doubleBackToExitPressedOnce) {
  5. super.onBackPressed();
  6. }
  7. else {
  8. drawer.openDrawer(GravityCompat.START);
  9. }
  10. }

And here is the message code and I don't know where to but it

  1. doubleBackToExitPressedOnce = true;
  2. Toast.makeText(this, "Press again to exit", Toast.LENGTH_SHORT).show();
  3. new Handler().postDelayed(new Runnable() {
  4. @Override
  5. public void run() {
  6. doubleBackToExitPressedOnce = false;
  7. }
  8. }, 2000);

答案1

得分: 1

这应该解决你的问题。

  1. @Override
  2. public void onBackPressed() {
  3. // 如果导航抽屉尚未打开,打开它。
  4. if (!drawer.isDrawerOpen(GravityCompat.START)) {
  5. drawer.openDrawer(GravityCompat.START);
  6. } else if (doubleBackToExitPressedOnce) {
  7. super.onBackPressed();
  8. } else {
  9. doubleBackToExitPressedOnce = true;
  10. Toast.makeText(this, "再次按下返回键退出", Toast.LENGTH_SHORT).show();
  11. new Handler().postDelayed(new Runnable() {
  12. @Override
  13. public void run() {
  14. doubleBackToExitPressedOnce = false;
  15. }
  16. }, 2000);
  17. }
  18. }
英文:

This should solve your problem.

  1. @Override
  2. public void onBackPressed() {
  3. // If navigation drawer is not open yet, open it.
  4. if (!drawer.isDrawerOpen(GravityCompat.START)) {
  5. drawer.openDrawer(GravityCompat.START);
  6. } else if (doubleBackToExitPressedOnce) {
  7. super.onBackPressed();
  8. } else {
  9. doubleBackToExitPressedOnce = true;
  10. Toast.makeText(this, "Press again to exit", Toast.LENGTH_SHORT).show();
  11. new Handler().postDelayed(new Runnable() {
  12. @Override
  13. public void run() {
  14. doubleBackToExitPressedOnce = false;
  15. }
  16. }, 2000);
  17. }
  18. }

huangapple
  • 本文由 发表于 2020年10月15日 23:56:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/64375388.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定