2011-03-29 58 views
0

我正在構建一個小型的黑莓應用程序,我必須在單個Horiziontal字段管理器中一個接一個地添加一個editField和位圖圖像。代碼工作正常 我在EditField之前放置位圖圖像,但是當我將圖像放置在EditField之後時,它無法正常工作。在黑莓的同一水平區域管理器中編輯字段和位圖圖像

這裏是我使用的代碼:

hfm1=new HorizontalFieldManager(); 

    Bitmap image = Bitmap.getBitmapResource("search_icon.png"); 
     BitmapField imageButton = new BitmapField(image, BitmapField.FOCUSABLE) 
     { 

        protected boolean navigationClick(int status, int time) 
        { 
          // This is method will invoke after clicking the image 
          // System.out.println("Image Clicked"); 
         SearchButtonClick(); 
          return true; 
        } 
     }; 


     searchEdit=new EditField("",_DEFAULT_FIELD_TXT, 50, EditField.FIELD_LEFT|EditField.NO_NEWLINE){ 

      public void layout(int width, int height) 
      { 
        Font font = getFont(); 
        int _fieldHeight = font.getHeight()+5; 
        //int _fieldWidth = (getWidth()-100); 
        setExtent(300, _fieldHeight); 
        super.layout(width,height); 

       } 




     }; 

     add(new SeparatorField()); 
     searchEdit.setFont(MainAppScreen.fontTitle); 
     searchEdit.setMargin(1, 2,1,1); 
     //hfm1.setMargin(2,5,2,5); 

     hfm1.add(searchEdit); 
     hfm1.add(imageButton); 

     add(hfm1); 

請建議。 同時建議在佈局管理器中正確對齊組件的方法。

+0

必須有代碼的allignment問題,這就是爲什麼它不能正常工作。嘗試使用佈局的allignment屬性,否則定製您自己的佈局。 – ani 2012-05-07 06:13:40

回答

1

Here's a blog that talks about table layout。我認爲這是你應該考慮的事情。它使您可以更好地控制佈局。

至於你上面的代碼,我猜想沒有足夠的空間來顯示位圖的文本框的右側。我認爲如果你從位圖開始,它會顯示整個位圖和儘可能多的文本字段。如果你從文本字段開始它顯示整個字段,並沒有空間來顯示位圖(它不會顯示部分位圖,也許?)

我相信你將不得不縮小你的寬度。

+0

根據我的需要,我必須在水平字段管理器中的位圖之前添加EditField。如果可能的話,可以給出一些代碼.... – 2011-03-29 11:33:06

+0

查看博客並使用表格管理器或Google表格管理器進行BB。這可能是設置固定寬度的列以確保您獲得兩個字段的最佳方法 – taylonr 2011-03-29 11:34:52

+0

ok taylonr我正在嘗試使用表格管理器 – 2011-03-29 11:39:15