2012-04-30 5 views
1

Existe-t-il une boîte de dialogue modale pour BlackBerry OS (versions 4 à 6) avec un champ de saisie de texte?Saisie de texte modale BlackBerry

J'ai une application graphique et je voudrais éviter de peindre sur sa toile, il suffit de lancer un modal dans le visage de l'utilisateur et de demander un petit bout de texte.

Répondre

3

Essayez le code suivant:

Gardez ces global:

Dialog dialog;  
BasicEditField bEditField = new BasicEditField(); 

Effectuez ensuite la boîte de dialogue personnalisée comme ceci:

dialog = new Dialog(Dialog.OK, "Enter Value:", Dialog.OK, null, Dialog.DEFAULT_CLOSE); 
dialog.add(bEditField); 

invoquez dialog.doModal() de quelque bouton ou l'action Menu:

int i = dialog.doModal(); 
if(i == Dialog.OK) { 
    Dialog.inform("The Input Text is : " + bEditField.getText()); 
} 
6

Essayez le code suivant:

Dialog dialog = new Dialog(Dialog.D_OK, "Title", 0, null, 0); 
EditField ef = new EditField("Input: ", ""); 
((DialogFieldManager)dialog.getDelegate()).getCustomManager().add(ef); 

// show modal dialog, wait for response 
dialog.doModal(); 

// get the input text 
Dialog.alert(ef.getText()); 


Pour plus de personnalisation net.rim.device.api.ui.component.Dialog doit être étendue. Le code suivant effectuera la même chose que ci-dessus.

class InputDialog extends Dialog { 
    private EditField inputField; 

    public InputDialog() { 
     super(Dialog.D_OK, "Input Dialog", 0, null, 0); 
     Manager delegate = getDelegate(); 
     if (delegate instanceof DialogFieldManager) { 
      DialogFieldManager dfm = (DialogFieldManager) delegate; 
      Manager manager = dfm.getCustomManager(); 
      inputField = new EditField("Input: ", "", 50, EditField.EDITABLE); 
      if (manager != null) { 
       manager.insert(inputField, 0); 
      } 
     } 
    } 

    public String getInputText() { 
     return (inputField == null) ? "" : inputField.getText(); 
    } 
} 


exmaple Utilisation:

InputDialog seaerchDialog = new InputDialog(); 
// show modal dialog, wait for response 
seaerchDialog.doModal();   
// get the input text 
Dialog.alert(seaerchDialog.getInputText());