如何在黑莓手机的弹出屏幕中添加自定义管理器

时间:2013-01-01 08:22:59

标签: blackberry

我正在尝试在黑莓中添加自定义窗口但在此之前我正在尝试在该弹出屏幕中添加自定义标签以让我满意,我可以添加或不能。所以当我补充说我面临IllegalArguementException错误的问题时,你能告诉我怎样才能解决这个问题。我这样做。

看到这是我用来添加弹出窗口的MYScreen类。因此,当我点击屏幕上添加的按钮时,会添加弹出窗口。

public final class MyScreen extends MainScreen implements FieldChangeListener
{
    private ButtonField btn;

public MyScreen()
    {        
        setTitle("MyTitle");

        btn = new ButtonField ("press");
        btn.setChangeListener(this);

        add(btn) ;
    }

public void fieldChanged(Field field, int context) 
{
    if ( field == btn )
    {       
    Dialog.inform("hello");

    pop_manager manager_object = new pop_manager(0);

    UiApplication.getUiApplication().pushScreen( new up_pop_test( manager_object ) );               
    }
}
}

所以在这里我添加了new_up_pop_test类,它是:

public class up_pop_test extends PopupScreen
{
public up_pop_test( pop_manager delegate)
{
    super(delegate);

    add(delegate);
}
}

和pop_manager是:

public class pop_manager extends Manager
{
protected pop_manager(long style)
{
    super(style);
}

protected void sublayout(int w, int h) 
{
    Field f = getField(0);
    layoutChild( f , w/3+w/3 , 50 ) ;
    setPositionChild ( f , w/33 + w/33 , w/67+w/104 );

    setExtent(w,h);
}
} 

1 个答案:

答案 0 :(得分:3)

你不需要做你想做的那么多工作......

您只需要一个 PopupScreen ,您可以随意自定义,就像普通屏幕一样。

public class MyPopup extends PopupScreen  {

    public MyPopup() {
        super(new VerticalFieldManager());
        LabelField infoLabel = new LabelField("Here is a label in a popup");
        add(infoLabel);   
    }
}

为了打电话,您需要做的就是像普通屏幕一样推动。

  UiApplication.getUiApplication().pushScreen(new MyPopup());  

您无法控制对话类,这些用于简单操作,例如通知用户或提出问题,并且是标准化的