繁体   English   中英

禁用和启用后退按钮

[英]Disabling and enabling back button

在应用程序中使用gps查找用户位置。在Async预执行方法中我显示了一个toast.I想要在我显示toast时应该禁用后退按钮

aftr找到位置我要在后执行中启用后退按钮!

禁用我已经使用的后退按钮。但这不起作用

 OnKeyListener mainScreenKeyListener = new OnKeyListener() {
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                    boolean disableEvent = false;
                    if (event.getKeyCode()==KeyEvent.KEYCODE_BACK) {
                        disableEvent = true;
                    }

                    return disableEvent;
                }
            };

您可以通过以下方式声明全局变量disableEvent

final boolean disableEvent;

您的Preexecute方法可以将其设置为false

disableEvent = false;

您的Postexecute方法可以将其设置为true

disableEvent = true;

您可以覆盖onBackPressed,如下所示:

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        if (disableEvent)
        {
            // do nothing
        }
        else
        {
            // do something
        }
    }

干得好

分配一个静态变量,并在onPreExecute中将其值设置为“NO”。 在onPostExecute中将其值指定为“YES”。

并在onBackPressed中编写以下代码。

 @Override
    public void onBackPressed() {

       if (decision.equals("NO")) {  //Here no means dont allow user to go back

       } else {
           super.onBackPressed(); // Process Back key  default behavior. 
       }

   }

您好,停用即可,只需调用上述功能

public void onBackPressed()
        {
         }

启用

 public void onBackPressed()
    {
        super.onBackPressed();
        super.finish(); 
        //Intent
    }
 if you want both set flag inside the function

在您的活动中覆盖onBackPress方法

Class A
{
    public static boolean isToastShown=false;



    @Override
        public void onBackPressed() {
               if(isToastShown==true)
                 return false;
               else
                 super.onBackPressed();

             }

}

@Override
    protected void onPreExecute() {
        super.onPreExecute();
           //Show your toast here
           A.isToastShown=true;


new CountDownTimer(2000,2000) {

            @Override
            public void onTick(long millisUntilFinished) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onFinish() {
                A.isToastShown=false;

            }
        }.start();


      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM