Как изменить цвет фона строки в ListField после навигации Нажмите? - PullRequest
0 голосов
/ 11 августа 2011

Я новичок в BB dev. Я создаю CustomListField, и когда я щелкаю по строке, цвет фона этой строки должен измениться, и должен появиться новый экран (все готово!).

Может ли кто-нибудь помочь мне сделать это? ТНХ

Ниже приведен код:

protected boolean navigationClick(int status, int time)
       {Field field = this.getLeafFieldWithFocus();

       if(field instanceof ListField)
       {
         // listValues is String[] where you store your list elements.
         // listField is the ListField instance you are using 
           UiApplication.getUiApplication().pushScreen(new ReadMsgScreen());

           int index= getIndex();
           if(index== this.getSelectedIndex())
           {
               **// I think the  code to change the row's background color must be set here!**

           }

          return true;
        }

       return super.navigationClick(status, time);
   }

Ответы [ 3 ]

1 голос
/ 11 августа 2011

используйте это, это определенно будет работать ...

int tmpcolor = graphics.getColor();
graphics.setColor(Color.CYAN);
graphics.fillRect(0, y, width, getRowHeight());
graphics.setColor(tmpcolor);

спасибо ...

0 голосов
/ 13 августа 2011

В методе drawListRow () ListFieldCallback для CustomListField рисует эту выбранную линию по-другому и вызывает Переход для медленного отображения другого экрана.

0 голосов
/ 11 августа 2011

перезапустите метод paint () в blackberry, как показано в приведенном ниже коде.

_specialNumbers = new LabelField(Constants.SPECIAL_NUMBERS,LabelField.USE_ALL_WIDTH) {
            protected void paintBackground(Graphics arg0) {
                int color = arg0.getBackgroundColor();
                arg0.setBackgroundColor(Color.LIGHTGREY);
                arg0.clear();
                arg0.setBackgroundColor(color);
            }
        };
...