2013-08-04 149 views
0

好的我在java类中是一个完整的newb。我有一个公共方法,动态显示一些Linearlayouts与他们的一些东西。例如,这个方法(public void methodA)在ClassA.java中,那么我想从ClassB.java内部调用methodA。这两个类都扩展了Activity,并且在OnCreate方法中调用了methodA。来自其他类的调用方法

ClassA.java

public class ClassA extends Activity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     methodA(); 
    } 
    public void methodA() { 
     //Do Stuff 
     /* This uses: 
     * Package Manager 
     * Buttons using(this) 
     * Linear Layouts using(this) 
     * TextViews using(this) 
     * findViewById() 
     * startActivity 
     */ 
    } 

} 

ClassB.java

public class ClassB extends Activity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     methodA(); //How do I do this 
    } 
} 

回答

1

我很清楚这种方法是特定于第一个活动的,这意味着它不应该在第二个活动中调用。您可以重新实现在第二个活动,或者,如果这些活动都差不多,你有两个选择(不这样做,如果他们不!):

  • 继承了第二个活动第一。
  • 将这两个活动合并为一个并使用不同的意图启动它们并采取相应的行动。

第二种方法比较容易维护,所以我更喜欢它比第一种方法更简单。

+0

为什么我们无法参考其他活动? –

+0

@TarunDroid Android自己管理活动,它不提供任何方式来获取它,因为它违背了Android设计。当然,你可以自己创建实例化活动的类,但是没有什么意义。 – Malcolm

+0

我在一些细节上添加了一些细节,如果它没有足够的细节请说,我会提供:) – Nick

0
类B级A的

实例了解创建,然后就可以从B类调用治法

公共类ClassB的扩展活动{

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //MethodA(); //How do I do this 
    ClassA a=new ClassA(); 
    a.MethodA(); 
} 

}