[英]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.