2012-03-05 1 views
0

, что это лучший способ изменить цвет выделения (фокус) из черной смородины ListField, я использовал метод drawFocus это делает высвечивающейся вещь, но его производительность слишком медленно, чтобы идти сBlackberry ListField цвет выделения

кодекса drawlistrow

Item item = (Item)this.listData.elementAt(this.getSelectedIndex()); 

    g.drawText (item.getItemNumber(), 2, y, Graphics.LEFT,20); 
    g.drawText (item.getDescription(), 25, y, Graphics.LEFT,30); 
    g.drawText (item.getItemType(), 60, y, Graphics.LEFT,15); 

    g.setColor(0xC4C3C4); 
    g.drawLine(2, y, 2, 115); 
+0

добавить свой drawlistrow код здесь – rfsk2010

+0

У меня есть 5 различных СПИСКОВ и хотим добавить общий код для фокуса выделения я только представление данных в методе drawlistrow –

ответ

1

вы можете настроить список полей цвет подсветки, используя следующий код

if (g.isDrawingStyleSet(Graphics.DRAWSTYLE_FOCUS)) { 
    //change focus color 
     g.setBackgroundColor(MyColors.LIGHT_GRAY); 
     g.clear(); 
    //draw text 
     g.setFont(boldTextFont); 
     g.setColor(MyColors.White); 
     g.drawText(text, 12, y); 
    } 

ли добавить код drawlistrow, чтобы мы могли помочь вам улучшить е место e производительность.

+0

мне нужно изменить синий цвет по умолчанию элемента, который появляется в центре внимания –

+0

ли вы пытаетесь мой код? – rfsk2010

+0

пробовал этот успех с успехом! – Lucas

0

создать один boolean для этого экрана. boolean _inFocus = false;. Затем добавьте два метода (onfocus, onunfocus) в свой конструктор Listfield. protected void onFocus(int direction) { _inFocus = true; super.onFocus(direction); } protected void onUnfocus() { _inFocus = false; super.onUnfocus(); }.

Запишите ниже метод в вашем методе drawListRow. В приведенном ниже методе мы проверим, что строка является настраиваемой или нет.

if(_inFocus) 
     { 
      if(listField.getSelectedIndex() == index) 
      { 
       g.setGlobalAlpha(100); 
       g.setColor(0xff9600); 
       g.fillRect(0,y,getWidth(),getHeight()); 
       //invalidate(); 
      } 
     } 

Это простой способ, чтобы выделить строку в Listfield. Надеюсь, это поможет вам.

 Смежные вопросы

  • Нет связанных вопросов^_^