黑莓手机 - 趣味与FieldManagers

我试图做一个视图,它提供一个水平或垂直布局取决于它是如何创建的类。 我使用一个委托来实现这一点。

class View extends Manager { private Manager mDelegate; public View(Manager inDelegate) { mDelegate = inDelegate; // the delegate is the only child of "this" manager. super.add(mDelegate); } public void add(Field f) { // all other children go into the delegate. mDelegate.add(f); } // other methods that also delegate }

当我创建一个视图对象我通过在水平或垂直领域的经理,然后委托调用的。 这是有点什么Screen类确实在黑莓。

其实我在看黑莓文档的屏幕,看看调用它代表(所以我可以模仿),我看到这样的电话在屏幕...

保护布尔keyChar(字符C,INT地位,诠释时间)

代表们密钥生成事件控制领域具有焦点。 此方法调用Manager.keyChar(CHAR,INT,INT)在此屏幕上的委托管理。

那样的话就马上照在我,怎么在世界上,他们呼吁在屏幕的委托一个受保护的方法是什么? 或者是文档错误的,这种方法不授予?

任何人都知道他们是如何做到这一点?

--------------解决方案-------------

提醒自己什么保护手段:

受保护的方法可以通过它的类中的任何的子类调用,但不是不相关的类。

这并不直接回答你的问题,但你能延长Screen (在此API),而不是Manager ,然后调用super(mDelegate)在构造函数? 然后,想必无论魔法只会工作,有必要吗?

除此之外我只是建议你尝试一下,看看你是否能覆盖理应保护的方法!

我设法找出一些其他等问题,解决这个问题的帮助。

我的解决方案是创建一个提供公共接入点的保护方法的接口,然后在子类Manager类和组合在该界面。 公共方法将调用其超强的保护方法。

然后View类,然后通过这些管理器子类之一。

public interface ManagerDelegate {
Manager asManager();
// Provide public access points to any protected methods needed.
void doProtectedMethod();
}

public HorizontalDelegate extends HorizontalFieldManager implements ManagerDelegate {
public Manager asManager() {
return this;
}
public void doProtectedMethod() {
// call the Manager's protected method.
protectedMethod();
}
}

public VerticalDelegate extends VerticalFieldManager implements ManagerDelegate {
public Manager asManager() {
return this;
}
public void doProtectedMethod() {
// call the Manager's protected method.
protectedMethod();
}
}

public class View extends Manager {
private final ManagerDelegate mDelegate;

public View(ManagerDelegate inDelegate) {
mDelegate = inDelegate;
}

protected void protectedMethod() {
// Call into our delegate's public method to access its protected method.
mDelegate.doProtectedMethod();
}

public void publicMethod() {
// For public delegated methods I can just get the Manager instance from
// the delegate and call directly.
mDelegate.asManager().publicMethod();
}
}

分类:用户界面 时间:2015-03-15 人气:0
本文关键词: 用户界面,布局,黑莓
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.329 (s). 10 q(s)