2013-01-01 29 views
-1

我想在黑莓中添加自定義窗口,但在此之前,我試圖在該彈出屏幕中添加自定義標籤以滿足我可以添加或不能。所以當我添加我正面臨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); 
} 
} 

回答

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

無法獲得控制權對話框類,這些都是像通知用戶或問一個問題簡單的操作和標準化

+0

,但我想補充我的「自定義管理器」,裏面超()! – user1940706

+0

對不起,基本上我想添加我的自定義管理器,在這個屏幕上。 – user1940706

+0

然後swap超級(新的VerticalFieldManager());與超級(新pop_manager(0)); –

相關問題