2011-08-05 132 views
3

請檢查不顯示自定義BasicEditField光標BB

BasicEditField demo = ew BasicEditField("", number, 15, 
       BasicEditField.FILTER_NUMERIC 
         | BasicEditField.FIELD_LEFT) { 
      public int getPreferredWidth() { 
       int Width = Graphics.getScreenWidth() - 180; 
       return Width; 
      } 

      public int getPreferredHeight() { 
       return 30; 
      } 

      public void paint(Graphics g) { 

       g.setColor(Color.LINEN); 
       g.fillRect(0, 0, this.getWidth(), this.getHeight()); 
       g.setColor(Color.BLUE); 
       g.drawText(getText(), 0, 0); 
       super.paint(g); 
      } 

      protected void layout(int arg0, int arg1) { 
       super.layout(getPreferredWidth(), getPreferredHeight()); 
       super.setExtent(getPreferredWidth(), getPreferredHeight()); 
      } 
     }; 

這是我的代碼幫助我嗎?

回答

0

Kalpana,我檢查了你的代碼。是的,它沒有顯示光標。我建議你使用EditField而不是BasicEditField。您也可以爲Editfield覆蓋這些方法。我試過了,它顯示光標。

+0

嗨,我檢查了但沒有改進......謝謝回覆 –

0

我想我可能已經通過在此自定義BasicEditField之前向經理添加另一個字段來解決此問題。添加一個不做任何事情的字段。事情是這樣的:

BitmapField bugFix = new BitmapField(Bitmap.getBitmapResource("empty_image.png")); 
myFieldManager.add(bugFix); 
myFieldManager.add(demo); 

不過,我發現的是,空場(BitmapField在這種情況下)事宜的大小。如果您的「empty_image.png」圖片只有2px高,則只會顯示光標的頂部2px。所以,如果你可以處理額外的填充,添加一個至少有20px左右的字段,並且應該顯示整個光標。我還應該補充說,這個錯誤似乎沒有出現在你添加到管理器的任何後續自定義BasicEditField上......只有第一個。嗯...