2009-12-16 151 views
1

我使用以下全局对话框在用户退出应用程序并通知我的应用程序检查某个任务后显示一些消息。黑莓手机 - 全球屏幕修改?

synchronized(UiApplication.getEventLock()) { 
    UiEngine ui = Ui.getUiEngine(); 
    Screen screen = new Dialog(Dialog.D_OK, "My Message", 
     Dialog.OK, Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION), 
     Manager.VERTICAL_SCROLL); 
    ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_QUEUE); 
} 

我想添加这个对话框,我的应用程序标题,和一些消息(已经我给那个......)的标题,并删除感叹号或任何默认图标已经给这个对话框。尽管在这个对话框中我不需要任何ICON。

如果你使用过它,有人可以给我建议吗?

谢谢。感谢您能帮助我解决这个问题。

回答

4

有一个在Dialog类没有标题,我会建议使用PopupScreen extention:
alt text http://img187.imageshack.us/img187/6245/9000.jpg

class GlobalDialog extends PopupScreen implements FieldChangeListener { 
    ButtonField mOKButton = new ButtonField("OK", ButtonField.CONSUME_CLICK 
      | FIELD_HCENTER); 

    public GlobalDialog(String title, String text) { 
     super(new VerticalFieldManager()); 
     add(new LabelField(title)); 
     add(new SeparatorField(SeparatorField.LINE_HORIZONTAL)); 
     add(new LabelField(text, DrawStyle.HCENTER)); 
     mOKButton.setChangeListener(this); 
     add(mOKButton); 
    } 

    public void fieldChanged(Field field, int context) { 
     if (mOKButton == field) 
      close(); 
    } 
} 

使用示例:

class Scr extends MainScreen { 
    public Scr() { 
     synchronized (UiApplication.getEventLock()) { 
      UiEngine ui = Ui.getUiEngine(); 

      String title = "Dialog Title"; 
      String text = "Lorem ipsum dolor sit amet, consectetur " 
        + "adipiscing elit. Donec venenatis " 
        + "condimentum urna, non accumsan magna " 
        + "ultrices ut. Morbi fringilla "; 
      GlobalDialog screen = new GlobalDialog(title, text); 

      ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_QUEUE); 
     } 
    } 
} 

修订根据费尔南多评论

+0

哇!优秀的帮助。非常棒!我还有一个问题是,如果我想要显示对话框并且如果设备屏幕已经处于关闭状态使设备屏幕开启,是否有可能? – Getsy 2009-12-16 17:59:25

+0

不客气!单独发布关于显示的问题,所以它将被搜索机器专用和索引:)! – 2009-12-16 19:30:53

+1

我不得不修改它... 代替: 屏幕屏幕=新GlobalDialog(标题,正文) 我用: GlobalDialog屏幕=新GlobalDialog(标题,正文) 否则我 – 2011-02-02 08:19:56