我在我的应用程序中使用自定义ButtonField。我使用了Coderholic上“Blackberry Custom Button Field”博客文章中的代码在我的应用中创建了一个自定义按钮。 现在我想为此自定义按钮将editable属性设置为false。
如何为此自定义按钮执行等效的button.setEditable(false)
?
mybuttonid.setEditable(false)
无效。
答案 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()