父类SingleFragmentActivity, 两个子类CrimeActivity和CrimeListActivity,第一个子类执行了createFragment()方法,而第二个子类却没有执行,怎么回事?找了三天都没答案。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if(fragment == null){
fragment = new CrimeFragment();
fm.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.commit();
}
今天集中精神研究,终于开窍了,原来是fragment = new CrimeFragment()这一句的问题,这个CrimeFragment()只是对应到了第一个子类,而忽略了第二个子类。
应该修改为“
fragment = createFragment();
就OK了,因为两个子类都继承了createFragment()方法,会执行各自的内容。