2012-06-04 67 views
0

我有以下labelfield,我希望可點擊並捕捉/處理其焦點/未聚焦事件。LabelField在os6和os7設備上不顯示(僅在os5上)

titleField = new LabelField(title,FOCUSABLE|USE_ALL_WIDTH){ 
      public void paint(Graphics graphics) 
      { 
       graphics.setColor(Color.BLUE); 
       graphics.drawText(_title, 30,0); 
       super.paint(graphics); 
      } 

      protected boolean navigationClick(int status,int time) 
       { 
        if(panel != null) panel.takeAction(); 
        return true; 
       } 

       protected void onFocus(int dir) 
       { 
        super.onFocus(dir); 
        panel.setSelectedIndex(_index); 
       } 

       protected void onUnfocus() 
       { 
        if(!_collapse){ 
        _prevIndex = _index; 
        panel.setPreviousSelectedIndex(_prevIndex); 
        } 
       } 
     }; 

到目前爲止,代碼工作在我的OS5模擬器符合市場預期,但在OS6/7模擬器中,labelfields只是顯示爲空白(我甚至試圖消除super.paint(圖形);打電話,但還是得到了相同的結果)。有什麼想法發生了什麼?謝謝

回答

1

我想通了...實際上在我的佈局(水平)我有一個checkboxfield然後labelfield ..由於一些奇怪的原因,複選框字段佔用os6/7模擬器上的所有水平空間,即使我沒有指定USE_ALL_WIDTH。通過覆蓋佈局併爲複選框字段指定尺寸,佈局現在可以正常運行。感謝您的提示:)

2

我建議你刪除drawText並呼籲setText標籤每當你改變_title字段。

我還看到你不會調用super.onUnfocus()它會導致重繪問題。

+0

如果我不打電話在paint中繪製文本,那我該如何顯示文本?我添加了super.onunfocus,但仍然得到相同的結果..在os5模擬器上一切正常,在os6/7模擬器上沒有任何顯示。 –

+1

如果你爲你的文本調用setText而不是super.paint會爲你繪製文本 –

+0

我想通了......實際上在我的佈局(水平)中我有一個checkboxfield然後一個labieldield ..出於某種奇怪的原因,checkboxfield正在佔用即使我沒有指定USE_ALL_WIDTH,os6/7模擬器上的所有水平空間。通過重寫佈局並指定尺寸,佈局現在可以正常運行。感謝您的提示:) –

相關問題