0

我已经尝试了很多方法来防止 Android 中返回按钮的默认功能但没有成功

这是我使用但没有成功的代码之一:

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 上进行测试。

当我使用 Flash 模拟器时,它工作正常!表示后退按钮,让应用程序返回上一步(正如我所期望的那样)

但是在我发布apk(纵横比:自动,自动方向,渲染模式:GPU)后,只要我按下返回,它就会最小化我的应用程序!

(意味着当我按下手机上的后退按钮时,应用程序最小化(不关闭!)。当我重新激活它/单击它时,我看到应用程序实际上已经退了一步(正如我编程和预期的那样) ,但我只是不能停止按后退按钮后最小化/停用我的应用程序的默认操作。

任何人都有任何我可以在 ACTION 中看到的“Fla”文件吗?

因为我使用了很多代码但还没有成功

感谢并期待您的任何帮助...

4

6 回答 6

1

你不能用这个简单的代码吗?

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
}
于 2013-08-12T09:08:53.427 回答
1

实际上,默认情况下,android 后退键有两个功能。一个是UP键,另一个是DOWN键

所以要禁用后退按钮的默认命令并添加我们自己的命令,我们必须像这样编写代码。

如果我们删除/禁用键默认键向下功能并且仅与 KEY Up 功能一起使用则很好,因此要删除/禁用我们将添加EventListener Keyboardevent.KEY_DOWN 到本机应用程序并简单地通过 event.preventDefault() 禁用该功能;然后我们将再次将EventListener Keyboardevent.KEY_UP 添加到nativeapplication 并通过event.preventDefault() 简单地禁用该功能;然后将我们自己的命令添加到它!您可以反之亦然...但是如果按下键,则最好 cz 向下计数可能不止一个,并且可能会相应地影响您的命令。

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;
  }
}
于 2013-10-25T18:58:29.387 回答
1
 //Override onBackPressed    
 public void onBackPressed() {
    return; //Do nothing!
 }
于 2015-10-20T06:59:41.183 回答
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 !

于 2015-07-13T15:19:57.547 回答
0

覆盖 onBackPressed()

 @Override
public void onBackPressed() {
  //keep it blank
}

默认实现只是完成当前活动,但您可以覆盖它来做任何您想做的事情。

于 2013-08-12T09:09:57.160 回答
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();
    }
}
于 2014-09-17T08:55:04.703 回答