2011-01-12 6 views
0

Ich habe einen vertikalen Feldmanager, in diesem sind zahlreiche horizontale Feldmanager. In jedem horizontalen Feldmanager gibt es 1 Bitmapfeld und einen weiteren vertikalen Feldmanager (3 Beschriftungsfelder).Farbwechsel LabelField

Ich war in der Lage, die Hintergrundfarbe (GRADIENT) des horizontalen Feldverwalters, auf die jemals der Fokus hat, zu ändern. Aber ich möchte die Farbe (WEISS) der labelfields innerhalb dieses Managers auf Fokus ändern und die Farbe (SCHWARZES) zurück ändern, wenn unfocus. Außerdem funktioniert der isFocus() nicht sowohl für Manager- als auch für Beschriftungsfelder.

Antwort

0

Versuchen Sie, diese

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); 
      } 
     };