如何在导航后更改ListField中的行颜色背景单击?

时间:2011-08-11 10:16:44

标签: blackberry listfield

我是BB dev的初学者。我创建一个CustomListField,当我点击一行时,该行的背景颜色必须改变,并且必须显示一个新的屏幕(已完成!)。

有人可以帮我完成这件事吗? THX

以下是代码:

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 个答案:

答案 0 :(得分:1)

使用它肯定会有用......

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

感谢...

答案 1 :(得分:0)

在blackberry中使用paint()方法,如下面的代码所示..

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

答案 2 :(得分:0)

在CustomListField绘制的ListFieldCallback的drawListRow()方法中,选择不同的行并调用Transition以缓慢显示另一个屏幕。