我有以下labelfield,我希望可以点击,并捕捉/处理其焦点/非聚焦事件。
titleField = new LabelField(title,FOCUSABLE|USE_ALL_WIDTH){
public void paint(Graphics graphics)
{
graphics.setColor(Color.BLUE);
graphics.drawText(_title, 30,0);
super.paint(graphics);
}
protected boolean navigationClick(int status,int time)
{
if(panel != null) panel.takeAction();
return true;
}
protected void onFocus(int dir)
{
super.onFocus(dir);
panel.setSelectedIndex(_index);
}
protected void onUnfocus()
{
if(!_collapse){
_prevIndex = _index;
panel.setPreviousSelectedIndex(_prevIndex);
}
}
};
到目前为止,代码在我的os5模拟器上按预期工作,但在os6 / 7模拟器上,labelfields只显示为空白(我甚至尝试删除super.paint(图形);调用但仍然得到相同的结果)。有什么想法发生了什么?感谢
答案 0 :(得分:2)
我建议您每次更改drawText
字段时删除setText
并拨打_title
标签。
我也看到你没有打电话给super.onUnfocus()
它会引起重画问题。
答案 1 :(得分:1)
我想通了......实际上在我的布局中(水平)我有一个checkboxfield然后是一个labelfield ..由于一些奇怪的原因,即使我没有指定,也会在os6 / 7模拟器上占用所有水平空间USE_ALL_WIDTH。通过覆盖布局并指定checkbox字段的尺寸,布局现在正常运行。感谢您的提示:)