我使用以下部分替换FrameLayout
为Fragment
内部onNavigationItemSelected
方法,
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
Fragment fragment;
if (id == R.id.nav_camara) {
fragment = new MyFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.mainFrame, fragment);
ft.commit();
}
else if (id == R.id.nav_gallery) {
}
else if (id == R.id.nav_slideshow) {
}
else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
}
我想替换FrameLayout
为FragmentActivity
,然后我做到了
FragmentActivity fragmentAc;
if (id == R.id.nav_camara) {
fragmentAc= new MyFragmentActivity();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.mainFrame, fragmentAc);
ft.commit();
}
但要Wrong 2nd argument type. Found: 'android.support.v4.app.FragmentActivity', required: 'android.app.Fragment'
上线ft.replace(R.id.mainFrame, fragmentAc);
我现在应该改变什么,帮帮我
你试图通过FragmentActivity
它需要的地方Fragment
,这就是错误所说的。
如果要打开另一个活动而不是替换片段,则必须调用 startActivity(...)
代替:
if (id == R.id.nav_camara) {
fragmentAc= new MyFragmentActivity();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.mainFrame, fragmentAc);
ft.commit();
}
和:
if (id == R.id.nav_camara) {
startActivity(new Intent(getActivity(), MyFragmentActivity.class));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句