在 Java 中扩展多个 类 的替换

Substitution for extending multiple classes in Java

当我添加一个仅支持 class 扩展 ActivityFragment class 的投射按钮时,我发现这很困难,因为我已经对特定的 class 感兴趣扩展另一个 LinearLayout class。为了避免创建自定义按钮,我做了以下解决方法,

public class metaView extends LinearLayout {
    private FragmentActivity fragmentActivity;
    private void initViews() {
        fragmentActivity = new FragmentActivity(){
            @Override
            protected void onCreate(Bundle savedInstanceState){
                    //Create Button Discovery...

            }
        };
    }
}

但是,重写的 onCreate 方法似乎从未被调用过。有没有人看到这个替代方案的问题?还是这行不通?

提前致谢!

As I'm adding a cast button which only supports classes that extend the ActivityFragment class

这没有任何意义。无论如何,您不能创建和使用匿名 Activity 实例。您的布局应该可配置为 show/hide 按钮,并提供一个界面来处理按钮上的点击。例如你的 MetaView class 可能是这样的:

public interface OnCastButtonClickedListener {
    void onCastButtonClicked();
}

public void setCastButtonEnabled(boolean enabled) {
    // Turn it on or off
}

public void setOnCastButtonClickedListener(OnCastButtonClickedListener l) {
    // Assign some listener to delegate the button click to.
}

然后,无论 Activity 使用布局,都会负责 showing/hiding 投射按钮和处理点击事件。