2011-01-12 2 views
0

У меня есть вертикальный менеджер полей, внутри него много горизонтальных полевых менеджеров. в каждом диспетчере горизонтальных полей есть 1 битмапфилд и другой диспетчер вертикальных полей (3 поля меток).Изменение цвета LabelField

Мне удалось изменить цвет фона (GRADIENT) горизонтального полевого менеджера, с которым когда-либо был фокус. Но я хочу изменить цвет (БЕЛЫЙ) из labelfields внутри этого менеджера в фокусе и изменить цвет (BLACK), когда он не фокусируется. Кроме того, isFocus() не работает с краской как для поля управления, так и для метки.

ответ

0

Попробуйте

LabelField rtf=new LabelField(list[i],Field.FOCUSABLE|Field.USE_ALL_WIDTH) 
     { 
     boolean _inFocus = false; 
     public void onFocus(int direction) { 
      _inFocus = true; 
      super.onFocus(direction); 
      this.invalidate(); 
     } 

     public void onUnfocus() { 
      _inFocus = false; 
      super.onUnfocus(); 
      this.invalidate(); 
     } 
     public void paint(Graphics g) 
      { 

     if (_inFocus){ 
      g.setBackgroundColor(0x6395CC); 
      g.clear(); 
      g.setColor(Color.WHITE); 
      } 
      else 
      { 
       g.setBackgroundColor(Color.WHITE); 
       g.clear(); 
       g.setColor(Color.BLACK); 
      } 
      g.clear(); 
      super.paint(g); 
      } 
     }; 
Смежные вопросы