2012-05-15 35 views
0

我在我的應用程序中動態顯示按鈕。當我確定要顯示的按鈕數量時,它工作正常。但是,現在我想要改變點擊按鈕的背景顏色,我也可以這樣做,但只有標籤部分改變了顏色,其餘部分仍然是一樣的。如何顯示黑莓整個寬度和高度的背景按鈕?

那麼,我該如何解決這個問題呢?這裏是我到目前爲止的代碼:

btn = new ButtonField[Global.vec_locdisablecityname.size()]; 

for(int i=0;i<Global.vec_locdisablecityname.size();i++){ 
    btn[i] = new ButtonField("",ButtonField.CONSUME_CLICK |ButtonField.FOCUSABLE); 
    btn[i].setLabel((String)Global.vec_locdisablecityname.elementAt(i)); 

    if(Global.flag == true){ 
     Global.flag = false; 
     Bitmap bmp_backbtnclick=Bitmap.getBitmapResource("bg-btn-location.png"); 
     Background bg_backbtnclick=BackgroundFactory.createBitmapBackground(bmp_backbtnclick); 
     btn[i].setBackground(bg_backbtnclick); 
    } 
    else { 
     if(Global.selectedbutton == i){ 
      Bitmap bmp_backbtnclick=Bitmap.getBitmapResource("bg-btn-location.png"); 
      Background bg_backbtnclick=BackgroundFactory.createBitmapBackground(bmp_backbtnclick); 
      btn[i].setBackground(bg_backbtnclick); 
     } 
     else { 
      btn[i].setBackground(null); 
     } 
    } 
    FieldChangeListener listener = new FieldChangeListener() { 
     public void fieldChanged(Field field, int context) { 
      if (field instanceof ButtonField) { 
       for (int i = 0; i <= 1; i++) { 
        if (field == btn[i]) { 
         System.out.println("CLicked::::---->>>" +i); 
         btn[i].setBackground(null); 
         Global.selectedbutton = i; 
         selectedcityid = Global.vec_locdisablecitycode.elementAt(i).toString(); 
         System.out.println("value of selected city id:::-->>" +selectedcityid); 
         selectedcitycodeparse(selectedcityid); 
         selectedstartloading(); 
         break; 
        } 
        else { 
         btn[i].setBackground(null); 
        } 
      } 
     } 
     } 
    }; 
    btn[i].setChangeListener(listener); 
    hfmbuttons.add(btn[i]); 
} 

回答

0

您需要一個完整的自定義圖像按鈕。

檢查this tutorial

+0

非常感謝您的幫助......但我解決了我的問題。 – Ved

+0

如果您解決了您的問題,請考慮發佈解決方案作爲幫助其他用戶的答案。 – donturner

相關問題