0
public class xyz extends PopupScreen{
}

この画面がポップアップしたときにメニュー項目を追加したいと思います。メインスクリーンの場合と同様にメニュー項目を追加しようとしましたが、ポップアップスクリーンでは機能しません。

4

2 に答える 2

1

ポップアップ画面にメニューを追加できないのは、次のような問題があるためです。

サンプル画面としてメイン画面呼び出しがあり、サンプル画面では、メニューを保存してキャンセルしたとしましょう。メイン画面からポップアップ画面を押します。ここで、ポップアップ画面でもメニューを保存してキャンセルしたいと言った場合、blackberry はどのメニューがサンプル画面であるかポップアップ画面であるかを認識できません。

そのため、blackberry はポップアップ画面のメニューをサポートしていません。

于 2012-04-04T11:56:22.600 に答える
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();
}
}
于 2012-04-04T12:21:10.387 に答える