0

我需要扩展 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并将所有方法调用委托给它。

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

4

1 回答 1

0

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

于 2013-07-24T17:32:38.303 回答