也不算是坑,是自己写的时候没注意到,记下来,留个教训
一个MainActivity 中添加一个fragment
protected void onCreate(Bundle savedInstanceState) {
mMainFragment = new MainFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.activity_main,new MainFragment()
).commit();
}
这个fragment中有方法refresh(),a为fragment的初始化的一个对象,b是a的方法
void refresh(){
a.b();
}
在其他activity中调用
((MainActivity)getActivity()).mMainFragment.refreshNum();会爆出a为null的错误
原因是 MainFragment加载fragment时用的new MainFragment()应修改为:
getSupportFragmentManager().beginTransaction() .replace(R.id.activity_main, mMainFragment).commit();