1

如何使黑莓BitmapField在运行时无法聚焦?我想根据某个事件使它变暗。

4

2 回答 2

1

大多数时候这有效:

field.setEditable(false);

您还可以通过将样式标志传递给构造函数来创建不可聚焦的字段Field.NON_FOCUSABLEField.FOCUSABLE但是一旦实例化,您就无法更改它的可聚焦状态。即使可以,该字段也不会看起来“变暗”或“禁用”,而只是焦点将跳转到其后的下一个可聚焦字段。这方面的一个例子是不可聚焦的标签字段。

更新:这适用于 EditFields、Checkbox、RadioButtons 等内置字段。在您的情况下,这不起作用,因为 BitmapField 不是“可编辑”的,它是一个只读字段。您可以制作像@adwiv 回答节目这样的技巧,但“禁用”或灰色叠加层您必须自己实现。

于 2013-04-29T09:32:55.433 回答
1

扩展 BitmapField 以覆盖这样的isFocusable()方法:

public class FocusableBitmapField extends BitmapField {
    //Default value depending on whether you want it that way.
    private boolean focusable = true;

    public boolean isFocusable() {
        return focusable;
    }

    public boolean setFocusable(boolean focusable) {
        this.focusable = focusable;
    }
}
于 2013-04-28T18:10:05.490 回答