我有一个代码,在其中打开五个片段类,但我有一个案例在我的项目中调用活动类。
我可以将案例3更改为调用活动类而不是片段类吗?
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new FindPeopleFragment();
break;
case 2:
fragment = new PhotosFragment();
break;
case 3:
fragment = new CommunityFragment();
break;
case 4:
fragment = new PagesFragment();
break;
case 5:
fragment = new WhatsHotFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
答案 0 :(得分:2)
如果您的问题是您是否可以致电new MyActivity()
,答案是否定的。只有Android框架才能实例化Activity
,并且会根据Intent
调用中使用的Context.startActivity()
来实现此目的。
答案 1 :(得分:1)
如果您的意思是通过呼叫开始新活动,那么小答案是肯定的,您可以这样做。
但是,如果你的意思是实例化那么;不,你做不到。
switch (position) {
case 0:
*******WRONG WAY*******
myAct = new MyActivity(); // Where MyActivity is extended from Activity
break;
case 1:
*******RIGHT WAY*******
Intent intent=new Intent(MyCurrentActivity.this, MyNewActivity.class);
startActivity(intent);
break;
}