我尝试过多种方法来预防Android中Back按钮的默认功能,但没有成功
这是我用过的代码之一但没有成功:
stage.addEventListener(KeyboardEvent.KEY_UP, optionsKey, false, 0, true);
function optionsKey(ke: KeyboardEvent): void {
if (ke.keyCode == Keyboard.BACK) {
ke.preventDefault();
ke.stopImmediatePropagation();
//Do my own code below...
}
}
我正在使用Flash Cs6,Air 3.2 for Android,在LG Google nexus 4上进行测试。
当我使用闪光灯模拟器时,它工作正常!表示后退按钮,让应用程序返回上一步(正如我所期望的那样)
但是在我发布apk(宽高比:自动,自动方向,渲染模式:GPU)后,只要按下BACK,它就会最小化我的应用程序!
(意味着当我按下手机上的“后退”按钮时,应用程序最小化(不关闭!)。当我重新激活它/点击它时,我看到应用程序实际上已经退了一步(因为我编程和预期),但我只是按下后退按钮后才能停止默认操作最小化/取消激活我的应用程序。
任何人都有“Fla”文件,我可以在ACTION中看到它吗?!
因为我使用了很多代码而没有成功
感谢并期待您的任何帮助...
答案 0 :(得分:1)
你能不能使用这个简单的代码?
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
答案 1 :(得分:1)
实际上,android后退键默认使用两个函数。 一个是键UP,另一个是键DOWN
所以要禁用后退按钮的默认命令并添加我们自己的命令,我们必须编写这样的代码。
如果我们删除/禁用键默认键Down功能并且只能使用KEY Up功能,那就太好了 所以要删除/禁用我们将addEventListener Keyboardevent.KEY_DOWN添加到nativeapplication并简单地通过event.preventDefault()禁用该功能; 然后我们再将addEventListener Keyboardevent.KEY_UP添加到nativeapplication并简单地通过event.preventDefault()禁用该功能;然后添加我们自己的命令! 你可以反过来做到......但是这是首选的,如果按下按键,向下计数可能会超过一个,并且可能会相应地影响你的命令。
NativeApplication.nativeApplication.addEventListener( KeyboardEvent.KEY_DOWN, android_backDown );
NativeApplication.nativeApplication.addEventListener( KeyboardEvent.KEY_UP, android_backUp );
function android_backDown(e:KeyboardEvent)
{
switch (e.keyCode)
{
case Keyboard.BACK :
e.preventDefault();
break;
}
}
function android_backUp(e:KeyboardEvent)
{
switch (e.keyCode)
{
case Keyboard.BACK :
e.preventDefault();
// YOUR CODE
break;
}
}
答案 2 :(得分:1)
NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true)
function onKeyDown(event:KeyboardEvent):void
{
if( event.keyCode == Keyboard.BACK )
{
event.preventDefault();
event.stopImmediatePropagation();
//handle the button press here.
}
}
请注意,如果您设置了stage.displayState = FULL_SCREEN,则不会向您的应用发送键盘事件!请改用stage.displayState = FULL_SCREEN_INTERACTIVE!
答案 3 :(得分:1)
//Override onBackPressed
public void onBackPressed() {
return; //Do nothing!
}
答案 4 :(得分:0)
覆盖onBackPressed()
@Override
public void onBackPressed() {
//keep it blank
}
默认实现只是完成当前活动,但是 你可以覆盖它来做任何你想做的事。
答案 5 :(得分:0)
您可以禁用后退按钮功能。通过删除以下方法调用,如下所示:
@Override
public void onBackPressed() {
System.out.println("back pressed");
if(isValid) {
// This super.onBackPressed() performs the default back button function
super.onBackPressed();
} else {
Toast.makeText(SpO2TestActivity.this, "You can't close this screen", Toast.LENGTH_SHORT).show();
}
}