在blackberry中打开popupScreen时是否可以添加菜单项

时间:2012-04-04 11:07:35

标签: blackberry user-interface

public class xyz extends PopupScreen{
}

现在我想在弹出此屏幕时添加菜单项。我尝试添加菜单项,如在主屏幕的情况下,但它不能在popupScreen中工作。

2 个答案:

答案 0 :(得分:1)

在弹出屏幕菜单上无法添加,因为问题是例如: -

我有一个主屏幕调用作为示例屏幕,在示例屏幕上让我说我有保存和取消菜单,现在从主屏幕我按下一个弹出屏幕。现在,如果我说我想在弹出屏幕上同时保存和取消菜单,那么黑莓无法识别哪个菜单,无论是样本屏幕还是弹出屏幕。

所以,这就是为什么黑莓不支持弹出屏幕上的菜单。

答案 1 :(得分:1)

  

尝试此示例类,如您的要求:

public class SimpleScreen extends MainScreen
{
Font font;
private MenuItem saveItem;
private ButtonField buttonField;
public SimpleScreen() 
{
    font=Font.getDefault().derive(Font.ITALIC|Font.BOLD, 20);
    createGUI();        
    this.setFont(font);
}

private void createGUI()
{
    buttonField=new ButtonField("Click For Popup",Field.FIELD_HCENTER);
    buttonField.setChangeListener(new FieldChangeListener() 
    {
        public void fieldChanged(Field field, int context) 
        {
            UiApplication.getUiApplication().pushScreen(new ScreenPopup(SimpleScreen.this));
        }
    });
    add(buttonField);

}

public void addMenuItemToMenu()
{
    if(saveItem==null)
    {
        saveItem=new MenuItem("Save",100,101) 
        {
            public void run() 
            {
                Status.show("Clicked on Save Menu", 500);
            }
        };
        addMenuItem(saveItem);
    }
}           
}

class ScreenPopup extends PopupScreen
{
private SimpleScreen simpleScreen;
public ScreenPopup(SimpleScreen simpleScreen) 
{
    super(new HorizontalFieldManager(),PopupScreen.DEFAULT_CLOSE);
    this.simpleScreen=simpleScreen;
    this.add(new LabelField("ADDING Menu By Clicking the Back Button"));
}

public boolean onClose() 
{
    simpleScreen.addMenuItemToMenu();
    return super.onClose();
}
}