Android中的复合组件设计问题

时间:2011-04-18 21:00:38

标签: android

我正在尝试在android中创建一个复合组件。该化合物组分具有2个内部组分。其中一个是自定义组件(假设CompX)与一些公共方法。  第二个组件是普通按钮 所以复合组件如下所示,

class CompoundComp扩展了LinearLayout {

    private CompX customComp;
    private Button comp2;

    public void method1(){
          ------------------------------
          ------------------------------
    }

        -----------------------
        -----------------------

}

class CompX {

public void methodA(){
             ----------------------
}

public void methodB(){
             ----------------------
}

}

现在我正在使用客户端程序中的Compound Component,

class Client {

 CompoundComp compoundObj = new CompoundComp();
  compoundobj.method1();                

}

现在我的问题是访问CompX方法。我已知的解决方案是,

  1. 在CompoundComp类中,创建公共方法,然后再调用CompX公共方法
  2. 将CompX实例在CompoundComp类中设为public,以便客户端可以直接调用它们

    坦率地说,我无法决定走哪条路,因为我无法对两种解决方案的优点进行总结。

    如果我的解决方案是正确的,请有人建议我。如果是这样,哪一个更好用,如果不是,请给我一些建议或解决方案的线索。

  3. 由于

1 个答案:

答案 0 :(得分:0)

CompX类不是静态的,因此您无法创建它的实例。

要初始化内部非静态类,您应该使用外部类的对象创建它。