2012-01-08 5 views
0

MainScreensのいくつかの下部に表示されるタブバーを作成したいと思います。BlackBerryが別のクラスを介してMainScreenにフィールドを追加する

私が新しいので、驚くことではない問題は、クラスにフィールドを追加しようとすると、MainScreenにどのように配置されますか?私は使いたい画面に何らかのリファレンスを送る必要がありますか?

package mypackage; 

import net.rim.device.api.system.Bitmap; 
import net.rim.device.api.ui.container.HorizontalFieldManager; 

public class CustomTabBar { 
    private HorizontalFieldManager bar; 

    public CustomTabBar(){ 
    } 

    public void buildBar(){ 
     bar = new HorizontalFieldManager(); 

     add(bar); //Where am I adding this?! 

     Bitmap eventIcon = Bitmap.getBitmapResource("eventsicon.png"); 
     Bitmap eventIcon_hover = Bitmap.getBitmapResource("eventsicon-hover.png"); 
     CustomMenuField eventIconField = new CustomMenuField(eventIcon_hover,eventIcon, "TheatreScreen"); 
    } 
} 

答えて

0

あなたは子供がMainScreenに直接オブジェクトを追加したい場合は、[はい、あなたは、周りなどをMainScreenへの参照を渡す必要があります:

public class CustomTabBar { 
    private HorizontalFieldManager bar; 

    public void buildBar(MainScreen main) { 
     bar = new HorizontalFieldManager(); 

     Bitmap eventIcon = Bitmap.getBitmapResource("eventsicon.png"); 
     Bitmap eventIcon_hover = Bitmap.getBitmapResource("eventsicon-hover.png"); 
     CustomMenuField eventIconField = new CustomMenuField(eventIcon_hover,eventIcon, "TheatreScreen"); 

     bar.add(eventIconField); 
     main.add(bar); 
    } 
} 

public class CustomTabBar extends HorizontalFieldManager { 

    public CustomTabBar(long style) { 
     super(style); 

     Bitmap eventIcon = Bitmap.getBitmapResource("eventsicon.png"); 
     Bitmap eventIcon_hover = Bitmap.getBitmapResource("eventsicon-hover.png"); 
     CustomMenuField eventIconField = new CustomMenuField(eventIcon_hover,eventIcon, "TheatreScreen"); 
     add(eventIconField); 
    } 
} 

public class MyMainScreen extends MainScreen { 
    private CustomTabBar tab; 

    public MyMainScreen() { 
     ... 
     tab = new CustomTabBar(); 
     tab.buildBar(this); 
     ... 
    } 
} 

私はよりよい解決策は、例えば、代わりにそれをカプセル化するのHorizontalFieldManagerから拡張するために、あなたのクラスを変更することだと思います。

public class MyMainScreen extends MainScreen { 
    private CustomTabBar tab; 

    public MyMainScreen() { 
     ... 
     tab = new CustomTabBar(...); 
     add(tab); 
     ... 
    } 
} 
0

MainScreenオブジェクトが必要で、setStatus(this)を使用してタブバーを画面の下に配置する必要があります。 MainScreenのステータスセクションは表示されたままで、常に画面の下部にあります。バナーは常に先頭にあり、タイトルはバナーのすぐ下にあります。他のすべては、タイトル/バナーと画面のステータスセクションの間のスクロール可能な領域にあります。

関連する問題