2013-08-12 4 views
0

J'ai essayé des méthodes AUTANT à PRÉVENIR la fonction par défaut de bouton Retour dans Android, mais sans succèsDésactiver la fonction par défaut du bouton « Retour » pour Android

Ceci est l'un des codes que j'ai utilisé sans succès:

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... 
    } 
} 

Je l'aide de flash CS6, Air 3.2 pour Android, il Test sur Google Nexus LG 4.

Lorsque j'utilise le simulateur de flash, il fonctionne très bien! Signifie que le bouton Précédent permet à l'application de revenir à l'étape précédente (comme je le souhaite)

Mais après avoir publié l'apk (Rapport d'aspect: Auto, Auto-orientation, Mode de rendu: GPU), dès que appuyez sur BACK, cela minimise mon application!

(signifie que lorsque j'appuie sur le bouton Retour de mon téléphone, l'application diminue vers le bas (pas proche!). Quand je le réactive/je clique dessus, je vois que l'application a fait un pas en arrière (comme je programmé et prévu), mais je ne peux pas arrêter l'action par défaut de ATTENUATION/désactivation de mon application après avoir appuyé sur le bouton Retour.

Quelqu'un a un fichier « Floride » que je peux le voir en action s'il vous plaît ?!

Parce que j'ai utilisé beaucoup de codes et pas encore de succès

merci et j'attends avec impatience votre aide ...

Répondre

1

Ne pouvez-vous pas utiliser ce code simple?

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
} 
+1

Si vous ne voulez pas revenir sur appuyant sur la touche Retour, il suffit de commenter la ligne [code] super.onBackPressed(); [/ code] –

+0

J'ai eu ma réponse d'ici: http: // forum. adobe.com/message/3296779#3296779 –

0

Remplacer onBackPressed()

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

L'implémentation par défaut se termine simplement l'activité en cours, mais vous pouvez remplacer ce faire tout ce que vous voulez.

+0

Merci beaucoup. Puis-je demander où devrais-je placer ce code? Est-ce le code AS3 pour Flash Cs6 ?! Quand je le place là, il ne reconnaît pas: "@Override" ni "onBackPressed()". Voulez-vous s'il vous plaît expliquer? merci et désolé si ma question est stupide. –

+0

Dans la classe d'activité latérale, où vous voulez (placez-le où onCreate() fermé). –

+0

J'ai obtenu ma réponse d'ici: http://forums.adobe.com/message/3296779#3296779 –

1

En fait, la touche arrière Android fonctionne avec deux fonctions par défaut. on est avec la touche UP et une autre est la touche DOWN

Pour désactiver les commandes par défaut du bouton de retour et ajouter les nôtres, nous devons écrire le code comme ceci.

son bien si par event.preventDefault() supprimer/désactiver la touche de fonction clé par défaut vers le bas et ne fonctionne avec la touche de fonction Up afin de supprimer/désactiver nous addEventListener KeyboardEvent.KEY_DOWN à nativeApplication et simplement désactiver la fonction; nous allons alors ajouter à nouveauEventListener Keyboardevent.KEY_UP à nativeapplication et simplement désactiver la fonctionnalité par event.preventDefault(); puis ajoutez nos propres commandes! vous pouvez le faire vice versa à ... mais c'est préférable cz si la touche est enfoncée le compte de bas pourrait être plus d'un et pourrait effectuer vos commandes en conséquence.

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; 
    } 
} 
0

Vous pouvez désactiver la fonctionnalité du bouton de retour. En supprimant l'appel de méthode suivante comme suit:

@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(); 
    } 
} 
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. 
    } 
} 

Notez que si vous avez Scénographie.displayState = FULL_SCREEN, aucun événement clavier n'est envoyé à votre application! Utilisez stage.displayState = FULL_SCREEN_INTERACTIVE à la place!

1
//Override onBackPressed  
public void onBackPressed() { 
    return; //Do nothing! 
} 
+0

S'il vous plaît expliquer le code et ajouter le format en utilisant 'ou espace. – rajuGT

Questions connexes