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

如何从Android类访问其他类方法?,android,Android,我的应用程序包含三个类:主活动、视图A、视图B View_B需要访问View_a的非静态方法。如何操作 视图A和视图B都已在onCreate方法的主活动中初始化 谢谢。基本上,您需要一个引用来查看内部视图。一种方法是在视图中定义一个视图变量,该变量可供activity类访问。在onCreate中,只要在创建视图A和视图B之后将变量设置为视图A的实例。您可以将视图A作为公共实例变量存储在主活动中。然后将主活动的上下文传递给视图B。然后,您可以通过视图B中主活动的上下文访问视图A的实例 这就是我的基

我的应用程序包含三个类:主活动、视图A、视图B

View_B需要访问View_a的非静态方法。如何操作

视图A和视图B都已在onCreate方法的主活动中初始化


谢谢。

基本上,您需要一个引用来查看内部视图。一种方法是在视图中定义一个视图变量,该变量可供activity类访问。在onCreate中,只要在创建视图A和视图B之后将变量设置为视图A的实例。

您可以将视图A作为公共实例变量存储在主活动中。然后将主活动的上下文传递给视图B。然后,您可以通过视图B中主活动的上下文访问视图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);
} 

我希望其中的一些东西能够帮助您解决这个问题,这是siple。您需要在当前类中创建need类的引用,并使用referencedObject.methodName()调用该方法

啊,这是一种比我更有效的方法,因为它不会传递上下文来查看我的更新。我已经包括了我的意思,但就像我说的,我认为Teds解决方案更优雅