2011-03-07 7 views

Répondre

5

cela devrait faire l'affaire. Mes excuses à tous les chefs suédois qui regardent.

int answer = Dialog.ask("Gersh gurndy morn-dee burn-dee, burn-dee, flip-flip-flip-flip-flip-flip-flip-flip-flip?", new String[] {"Hokey dokey","Bork bork bork"}, new int[] {Dialog.OK,Dialog.CANCEL}, Dialog.CANCEL); 

: Edits

The above explained better: 
public final static int NEGATIVE = 0; 
public final static int AFIRMATIVE = 1; 
public final static int DEFAULT = NEGATIVE; 
int answer = Dialog.ask("question?", new String[] {"afirmative button label", "negative button label"}, new int[] {AFIRMATIVE,NEGATIVE}, DEFAULT); 

Comme vous pouvez le voir ci-dessus, il est possible de changer toutes les valeurs texte (langue) sur un dialogue juste en utilisant cette méthode de sorte que vous ne devriez pas avoir besoin d'une classe personnalisée pour créer un dialogue dans une autre langue.

Il est encore plus simple si vous utilisez l'approche de localisation BB standard la méthode la plus simple (Dialog.ask (res.getString (SOMEQUESTION)) aura automatiquement ses boutons positifs et négatifs ajustés pour la langue définie dans les options de téléphones. il suffit d'ajouter la question en tant que ressource de chaîne

vous pouvez trouver une liste des méthodes valides et les constructeurs ici. http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/ui/component/Dialog.html

Plus Edits ci-dessous:

Je pensais que ma réponse ci-dessus était ce que vous étiez après mais si vous avez besoin de personnaliser davantage la boîte de dialogue dans une nouvelle classe que vous pouvez le faire comme ceci:

public class MyDialogScreen extends MainScreen implements LocalResource { 

    private int exitState; 

    ... 

    protected void sublayout(int width, int height) { 
     setExtent(dialogWidth, dialogHeight); 
     setPosition(XPOS, YPOS); 
     layoutDelegate(dialogWidth, dialogHeight); 
    } 

    // do some stuff and assign exitState appropriately 
    // e.g. a button that sets exitState = 1 then pops this screen 
    // another button that sets exitState = 2 then pops this screen 
    ... 

    public int getExitState() 
    { 
     return this.exitState; 
    } 

Dans ce qui précède, j'ai créé un nouvel écran et je l'ai substituée la méthode sublayout pour spécifier une largeur personnalisée, la hauteur et des positions xy layoutDelegate. Lorsque vous appuyez sur cet écran, vous le voyez comme une zone de dialogue au-dessus de l'écran précédent de la pile aux positions XY que vous avez spécifiées.

Assurez-vous d'utiliser pushModal. Cela vous permettra d'accéder à la méthode getExitState après que l'écran a été retiré de la pile d'affichage.

par exemple

MyDialogScreen dialog = new MyDialogScreen(); 
UiApplication.getUiApplication().pushModalScreen(dialog); 
int result = dialog.getExitState(); 

Vive

Ray

Questions connexes