2012-01-11 9 views
0

着信時にリスナーを持つアプリケーションを作成してから、電話画面までフィールドを追加します。 しかし、私は本当にlabelfieldsまたはPhoneScreenVerticalManagerの幅を制御できないようです。 PhoneScreenVerticalManagerで枠線や背景を設定しようとすると、何も起こりません。 labelfieldコンストラクタのUSE_ALL_WIDTHも何も変更されていないようです。 labelfieldsを左揃えにすることもできませんでした(labelfieldコンストラクターでDrawStyle.Leftを試しました)。ここPhoneScreenVerticalManager着信時の奇妙さ

は私のコードです:

public Incoming(int callId) {  
    this.callId = callId; 
    PhoneCall call = Phone.getCall(callId); 
    String number = call.getPhoneNumber(); 
    Vector contact = ContactUtil.getContactByPhone(number); 
     screenModel = new ScreenModel(callId); 
     phoneScreenPortrait = screenModel.getPhoneScreen(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING); 
     final XYRect rect = screenModel.getDimensions(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING); 
PhoneScreenVerticalManager manager = new PhoneScreenVerticalManager() 
     { 

      public void paint(Graphics g) { 
       g.setColor(Color.BLACK); 
       g.setBackgroundColor(Color.WHITE); 
       g.clear(); 
       super.paint(g); 
      } 

      protected void sublayout(int width, int height) 
      { 
       super.sublayout(rect.width, height); 
       super.setExtent(rect.width, height); 
      } 

     };   

     manager.setBackground(BackgroundFactory.createSolidBackground(Color.RED)); 
     manager.setBorder(BorderFactory.createSimpleBorder(new XYEdges(BORDER_PADDING, BORDER_PADDING, BORDER_PADDING, BORDER_PADDING), Border.STYLE_SOLID)); 

     String s = res.getString(FOUND_IN_CONTACTS); 
     LabelField header = new LabelField(s, LabelField.USE_ALL_WIDTH) 
     { 
      protected void layout(int width, int height) 
      { 
       super.layout(rect.width, height); 
       setExtent(rect.width, height); 
      } 

      public void paint(Graphics g) { 
       g.setColor(Color.BLACK); 
       g.setBackgroundColor(Color.WHITE); 
       g.clear(); 
       super.paint(g); 
      } 
     }; 
     header.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE)); 
     manager.add(header); 
     LabelField label = new LabelField(contact.firstElement().toString(), LabelField.USE_ALL_WIDTH) 
     { 
      protected void layout(int width, int height) 
      { 
       super.layout(rect.width, height); 
       setExtent(rect.width, height); 
      } 

      public void paint(Graphics g) { 
       g.setColor(Color.BLACK); 
       g.setBackgroundColor(Color.WHITE); 
       g.clear(); 
       super.paint(g); 
      } 

     }; 
     label.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE)); 
     manager.add(label); 
     phoneScreenPortrait.add(manager); 
     screenModel.sendAllDataToScreen(); 
} 

phonescreenマネージャは、それがすべてサポートされていないフィールドマネージャーに由来しているが任意のアイデアは大歓迎¨

おかげ

答えて

1

されます!フィールドマネージャのプロパティ。

解決策は、通常のフィールドマネージャを設定し、電話機マネージャに追加することです。