欺骗com.android.internal.app以扩展ActionBarImpl

时间:2013-07-24 17:16:14

标签: java android android-actionbar internals

我需要扩展ActionBarImpl,它是com.android.internal.app的一部分。但不建议这样做,因为它必然会在新的Android版本中随时更改 由于我不打算重新实施ActionBarImpl,我认为我会以这种方式创建一个类“欺骗”:

public class MyActionBar extends ActionBar {
    private ActionBar ab;

    public MyActionBar(Activity activity) {
        ab = activity.getActionBar();
    }

    @Override
    public void setCustomView(View view) {
        ab.setCustomView(view);

    }

    ... (so on with all ActionBar abstract methods)

单词:我扩展ActionBar +有一个私有成员,我获得实际活动的ActionBar并委托所有方法调用。

这样做有什么缺点吗?我不打破兼容性,是吗?

1 个答案:

答案 0 :(得分:0)

您要做的是应用Decorator模式。但它似乎不能按你的意愿工作,因为你的活动仍将使用ActionBar的原始实例,而不是装饰的实例。