ここでトリッキーな質問ですが、明確にしようと思います。
クラス 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 ステートメントは常に false です)。
if (A.getCurrentFragment() instanceof B) {
B fragment = (B) A.getCurrentFragment();
fragment.methodToBeCalled();
}