黑莓中的自定义按钮字段

时间:2011-10-08 13:40:22

标签: blackberry java-me

我在我的应用程序中使用自定义ButtonField。我使用了Coderholic上“Blackberry Custom Button Field”博客文章中的代码在我的应用中创建了一个自定义按钮。 现在我想为此自定义按钮将editable属性设置为false。

如何为此自定义按钮执行等效的button.setEditable(false)

mybuttonid.setEditable(false)无效。

1 个答案:

答案 0 :(得分:2)

覆盖Field.setEditable(boolean editable)以跟踪您自己的自定义可编辑布尔值:

private boolean customEditable = true;

public void setEditable(boolean editable) {
    super.setEditable(editable);
    customEditable = editable;
    // invalidate(); forces paint(Graphics graphics) to be called
}

覆盖navigationClick(int status, int time)以使用该布尔值来检测是否对点击事件做出反应:

protected boolean navigationClick(int status, int time) {  
    if (customEditable) fieldChangeNotify(1);
    return true;
}

如果您需要自定义视觉外观用于禁用状态,则还要覆盖paint(Graphics graphics)以使用其他颜色。在这种情况下,您还需要从invalidate()。{/ p>致电setEditable()