BlackBerry:Hilight显示horizontalFieldManager的背景

BlackBerry:Hilight显示horizontalFieldManager的背景,blackberry,focus,Blackberry,Focus,我想在滚动时点亮horizontalFieldManager的背景。我尝试了以下代码: public class HorizentalFocus extends HorizontalFieldManager{ protected void paint(Graphics g) { g.setBackgroundColor(isFocus() ? 4210231 : 0xFFFFFF); g.getFont(); g.clear(); super.paint(g)

我想在滚动时点亮horizontalFieldManager的背景。我尝试了以下代码:

public class HorizentalFocus extends HorizontalFieldManager{
  protected void paint(Graphics g) {
    g.setBackgroundColor(isFocus() ? 4210231 : 0xFFFFFF);
    g.getFont();
    g.clear();
    super.paint(g);
  }
  protected void onFocus(int direction) {
    invalidate();
    super.onFocus(direction);
  }
  protected void onUnfocus() {
    invalidate();
    super.onUnfocus();
  }
}
它可以工作,但我有两个问题:它不能照亮整个水平场,我想在聚焦时改变文本的颜色


谢谢你的帮助。

t谢谢你的编辑inf我的帖子:)@dda尝试设置HorizontalFieldManager-Field.focusable你的代码实际上正在工作,你只需要使用
HorizontalFieldManager。在创建
HorizentalFocus
实例时使用\u ALL \u WIDTH
。更改所有文本的文本颜色有点困难。如果对它们使用
LabelField
,则根据焦点状态修改绘制时的颜色方法可能会解决您的问题。但是,您需要将这些
LabelField
设置为可聚焦。如果您这样做,那么将焦点从一个HorizontalFieldManager移动到另一个将需要更多的up/dowm导航移动事件。如何在不创建实例的情况下使用HorizentalFocus?:)。在您的
HorizentalFocus
类上添加一个默认构造函数,它将是这样的,
public HorizentalFocus(){super(HorizontalFieldManager.USE_ALL_WIDTH);}
。如果你分享你的代码,它将帮助其他人指导你。是的,最后它的工作得益于你的帮助。谢谢你Rupak&signare我真的很感激:)。谢谢你编辑我的帖子:)@dda尝试设置HorizontalFieldManager-Field.FOCUSABLEYour代码实际上正在工作,你只需要使用
HorizontalFieldManager。在创建
HorizentalFocus
实例时使用所有宽度。更改所有文本的文本颜色有点困难。如果对它们使用
LabelField
,则根据焦点状态修改绘制时的颜色方法可能会解决您的问题。但是,您需要将这些
LabelField
设置为可聚焦。如果您这样做,那么将焦点从一个HorizontalFieldManager移动到另一个将需要更多的up/dowm导航移动事件。如何在不创建实例的情况下使用HorizentalFocus?:)。在您的
HorizentalFocus
类上添加一个默认构造函数,它将是这样的,
public HorizentalFocus(){super(HorizontalFieldManager.USE_ALL_WIDTH);}
。如果你分享你的代码,它将帮助其他人指导你。是的,最后它的工作得益于你的帮助。谢谢你Rupak&signare我真的很感激:)。