这里棘手的问题,但我会尽量清楚。
A类:extends FragmentActivity
并且具有FragmentManager
B 类:extends Fragment
并具有片段的 UI
C类:无关类
public class A extends FragmentActivity{
Fragment fragment = new FragmentActivity();
}
public class B extends Fragment{
public void methodToBeCalled(){
//do something
}
}
public class C{
//call B's methodToBeCalled() from here
//note it is not static
}
我想要做的是从 C 类调用位于 B 类中的方法。有什么想法可以做到这一点吗?
一种解决方案是从 C 类运行此代码:
B fragment = (B) getFragmentManager().findFragmentById(R.id.b);
这不起作用(它可以编译,但 if 语句总是错误的):
if (A.getCurrentFragment() instanceof B) {
B fragment = (B) A.getCurrentFragment();
fragment.methodToBeCalled();
}