我是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);
}
答案 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以缓慢显示另一个屏幕。