如何从 onNavigationItemSelected 方法启动 FragmentActivity
How to start FragmentActivity from onNavigationItemSelected method
我使用以下片段在 onNavigationItemSelected
方法中用 Fragment
替换 FrameLayout
,
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) {
}
}
我想用FragmentActivity
替换FrameLayout
,然后我做了
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);
我现在应该怎么改,帮帮我
您正试图在需要 Fragment
的地方传递 FragmentActivity
,这就是错误提示。
如果你想打开另一个 activity 而不是替换片段,你必须调用 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));
}
我使用以下片段在 onNavigationItemSelected
方法中用 Fragment
替换 FrameLayout
,
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) {
}
}
我想用FragmentActivity
替换FrameLayout
,然后我做了
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);
我现在应该怎么改,帮帮我
您正试图在需要 Fragment
的地方传递 FragmentActivity
,这就是错误提示。
如果你想打开另一个 activity 而不是替换片段,你必须调用 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));
}