Java 什么';下面的代码怎么了?
我从《大书呆子农场》这本书中学到了东西Java 什么';下面的代码怎么了?,java,android,android-fragments,Java,Android,Android Fragments,我从《大书呆子农场》这本书中学到了东西 FragmentManager fm = getFragmentManager(); Fragment fragment = fm.findFragmentById(R.id.fragmentContainer); if (fragment == null) { fragment = new CrimeFragment(); fm.beginTransaction().add(R.id.fragmentContainer, fragmen
FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if (fragment == null) {
fragment = new CrimeFragment();
fm.beginTransaction().add(R.id.fragmentContainer, fragment).commit();
}
出现类型不匹配错误。
然而,如果我打电话
CrimeFragment fragment=fm.findFragmentById(R.id.fragmentContainer)
这是行不通的。所以我的问题是如何使用布局中的id调用CustomFragment(CrimeFragment)
提前谢谢。我通常这样做:
CrimeFragment fragment = new CrimeFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, fragment).commit();
或
更多信息:
如果在onCreate方法中创建片段,则屏幕方向的更改将导致片段再次更新。
您可以在以下位置防止这种情况:
if (savedInstanceState == null){
CrimeFragment fragment = new CrimeFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, fragment, "fragment").commit();
}else{
CrimeFragment homeFragment = (CrimeFragment) getSupportFragmentManager().findFragmentByTag("fragment");
}
“不起作用”是什么意思?缺少铸造<代码>CrimeFragment片段=(CrimeFragment)fm.findFragmentById(R.id.fragmentContainer)代码>那么这回答了你的问题吗?谢谢,我认为导入android.support.v4.app.Fragment之间存在差异;导入android.app.Fragment;这不仅仅是演员的问题。
if (savedInstanceState == null){
CrimeFragment fragment = new CrimeFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, fragment, "fragment").commit();
}else{
CrimeFragment homeFragment = (CrimeFragment) getSupportFragmentManager().findFragmentByTag("fragment");
}