java-从另一个类中调用类中的函数

时间:2016-04-25 17:08:45

标签: java android interface

A类:

public class A extends Activity{
    B b;

    @Override
    public void onCreate(Bundle savedInstanceState) {
       b.sample();
    }

    public void test(){
       //Do Something
    }
}

B组:

public class B{

    public void sample(){
       //Do Something
    }
}

可以在A类中调用B类方法, 但是如何在B类中调用A类方法和函数呢?

我不能在B类中创建A类的新对象,如:

A a = new A();

因为它然后创建一个全新的活动(我是对的吗?!)

我应该使用界面来实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

定义B构造函数并使其接收活动

public class B{
   private Activity theActivityA;
   B(Activity activitiy){
    this.theActivityA = activitiy;
   if(this.theActivityA!=null){
      this.theActivityA.test();
   }
}

答案 1 :(得分:1)

是的,您可以使用界面。我假设你需要通知活动一些事情。

public class A extends Activity implements B.IListener {
....

public class B{
    IListener mListener;
    B(IListener listener){
        mListener=listener;
    }
    public void sample(){
       //Do Something
    }
    public interface IListener {
       something();
    }
}

因此,在B中,您可以调用任何IListener实例的方法,而不仅仅是A。

希望它有所帮助。