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();
因为它然后创建一个全新的活动(我是对的吗?!)
我应该使用界面来实现这个目标吗?
答案 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。
希望它有所帮助。