1

J'essaie d'adapter un morceau de code existant. Je suis en train d'essayer de supprimer une minuterie sur un écran splash et le changer en " appuyez sur une touche pour continuer l'écran de type ". J'ai besoin d'aide avec la logique push/popscreen et l'écoute d'une frappe sur l'écran de démarrage. Voici un extrait du code.Blackberry - fermer l'écran de démarrage sur n'importe quelle touche

public class MenuMain_Pca extends UiApplication { 
    public static void main(String[] args) { 
     MenuMain_Pca myStart = new MenuMain_Pca(); 
     myStart.enterEventDispatcher(); 
    } 
    public MenuMain_Pca() { 
     Screen_Splash_Screen wScreen = new Screen_Splash_Screen(); 
     this.pushScreen(wScreen); 
     this.popScreen(wScreen); 
     MenuMain_Pca.this.pushScreen(new HomeScreen()); 
    } 
} 

class Screen_Splash_Screen extends MainScreen implements KeyListener { 
    public Screen_Splash_Screen() { 
     super(DEFAULT_MENU | DEFAULT_CLOSE); 
     Bitmap b240 = new Bitmap(240, 163); 
     b240 = Bitmap.getBitmapResource("image1.png"); 
     BitmapField bf = new BitmapField(b240); 
     bf.setSpace(Display.getWidth()/2 - b240.getWidth()/2, 0); 
     add(bf); 
    } 
    public boolean keyChar(char key, int status, int time) { 
     return true; 
    } 
    public boolean keyDown(int keycode, int time) { 
     return true; 
    } 
    public boolean keyRepeat(int keycode, int time) { 
     return true; 
    } 
    public boolean keyStatus(int keycode, int time) { 
     return true; 
    } 
    public boolean keyUp(int keycode, int time) { 
     return true; 
    } 
} 

class HomeScreen extends MainScreen implements FieldChangeListener { 
    private ButtonField button1 = null; 
    public HomeScreen() { 
     super(DEFAULT_MENU | DEFAULT_CLOSE); 
     setTitle(new LabelField("label1", LabelField.ELLIPSIS 
       | LabelField.USE_ALL_WIDTH)); 
     int screenWidth = Display.getWidth() * 95/100; 
     button1 = new ButtonField("Button1"); 
     button1.setChangeListener(this); 
     add(button1); 
    } 

    public void fieldChanged(Field field, int context) { 
     if (field == (Field) button1) 
      UiApplication.getUiApplication().pushScreen(new menu1(1)); 
    } 

    // ask user if he really wants to leave... 
    public boolean onClose() { 
     boolean retval = false; 
     String label = "Are you sure you want to Exit now?"; 
     int response = Dialog.ask(Dialog.D_YES_NO, label, Dialog.YES); 
     if (response == Dialog.YES) { 
      System.exit(0); 
      retval = true; 
     } 
     return retval; 
    } 
} 
+0

où est la clé? – pstanton

+1

la touche any? Regardez attentivement votre clavier. On peut le trouver principalement entre les touches "P" et "Z". :) – davidP

+0

Vous pouvez "accepter" la réponse si vous voulez - appuyez sur la coche sur le côté gauche de la réponse. –

Répondre

4

Essayez d'utiliser l'événement keyDown dans l'écran de démarrage, comme ceci:

public boolean keyDown(int keycode, int time) { 
     getUiEngine().pushScreen(new HomeScreen()); 
     getUiEngine().popScreen(this); 
    return true; 
} 
+0

juste sur l'argent! Je vous remercie. Super site! – davidP

+0

De rien! –

Questions connexes