如何从Android类访问其他类方法?

时间:2011-04-18 02:56:52

标签: android

我的应用包含三个类:主要活动,View_A,View_B。

View_B需要访问View_A的非静态方法。怎么做?

View_A和View_B都已在onCreate方法的主要活动中初始化。

感谢。

3 个答案:

答案 0 :(得分:1)

它是siple.You jst需要在当前类中创建need类的引用,并使用referenceedObject.methodName()调用该方法;

答案 1 :(得分:0)

基本上,您需要在View_B中引用View_A。一种方法是在View_B中定义一个可供活动类访问的View_A变量。在onCreate中,只需在创建View_A和View_B后将变量设置为View_A的实例。

答案 2 :(得分:0)

您可以将View_A存储为Main Activity中的公共实例变量。然后将主要活动的上下文传递给View_B。然后,您可以通过View_B中的主要活动上下文访问View_A的实例。

这基本上就是我的意思

这是您的主要活动:

Context context;
public View_A viewA;

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  context = this;

  viewA = new View_A();
  View_B viewB = new View_B(context);
}

使用getter方法从上下文获取viewA可能会更好。

这是View_B示例类:

     class View_B {   
Context activityContext;

     // constructor   
     View_B (Context _c)
     {
         activityContext = _c;
         viewA = activityContext.viewA;   
      }    
    }

这基本上就是我的意思,但正如我在评论中所说,Teds解决方案似乎更优雅。

我认为他的意思更像是这样:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  context = this;

  View_A viewA = new View_A();
  View_B viewB = new View_B();
  // create a setter method in viewB class to set viewA instance into it after viewA & viewB are created. or i guess you could pass viewA to viewB in the constructor of viewB
  viewb.setViewA(viewA);
} 

我希望有些东西可以帮助你