1

テキスト入力フィールドを持つBlackBerryOS(v。4-6)のモーダルダイアログはありますか?

私はグラフィカルアプリケーションを持っていますが、そのキャンバスにペイントするのは避けたいのですが、ユーザーの顔にモーダルを投げて、小さなテキストを要求するだけです。

4

2 に答える 2

6

次のコードを試してください:

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());


さらにカスタマイズnet.rim.device.api.ui.component.Dialogするには、拡張する必要があります。次のコードは、上記と同じように実行されます。

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


使用例:

InputDialog seaerchDialog = new InputDialog();
// show modal dialog, wait for response
seaerchDialog.doModal();        
// get the input text
Dialog.alert(seaerchDialog.getInputText());
于 2012-04-30T09:12:33.703 に答える
3

次のコードを試してください。

これらをグローバルに保ちます:

Dialog dialog;    
BasicEditField bEditField = new BasicEditField();

次に、次のようなカスタム ダイアログを作成します。

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

dialog.doModal()いくつかのボタンまたはメニュー アクションから呼び出します。

int i = dialog.doModal();
if(i == Dialog.OK) {
    Dialog.inform("The Input Text is : " + bEditField.getText());
}
于 2012-04-30T09:34:16.237 に答える