2012-01-08 2 views
0

두 개의 MainScreens의 맨 아래에 표시되는 탭 막대를 만들고 싶습니다. 하나의 클래스를 만드는 것이 올바른 방법 일 것이라고 생각했습니다.BlackBerry에서 다른 클래스를 통해 MainScreen에 필드 추가하기

문제는 놀랍지 만 내가 새로운 것이기 때문에 클래스에 필드를 추가하려고하면 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에 대한 참조를 전달해야

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 MyMainScreen extends MainScreen { 
    private CustomTabBar tab; 

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

나는 더 나은 솔루션은 예를 캡슐화하는 대신 HorizontalFieldManager에서 확장 할 클래스를 변경하는 것입니다 생각 :

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(...); 
     add(tab); 
     ... 
    } 
} 
0

당신은 MainScreen 개체가 필요합니다, 당신은 화면의 하단에 탭 표시 줄을 넣어 대해 setStatus (이)를 사용하고 싶습니다. MainScreen의 상태 섹션은 항상 보이고 화면 하단에 있습니다. 배너는 항상 상단에 있고 제목은 배너 바로 아래에 있습니다. 다른 모든 것은 제목/배너와 화면의 상태 섹션 사이의 스크롤 영역에 있습니다.

관련 문제