-3

我有一个代码,它打开五个片段类,但我有一个案例来调用我的项目中的活动类。我可以从开关盒调用活动课吗?

我可以更改案例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"); 
    } 
} 
+1

为什么不呢?你有没有尝试过?什么不行? –

+0

我无法编写此代码的逻辑。 –

+0

我希望当案例3被调用时它应该调用Activity Class –

回答

2

如果你的问题是你是否可以拨打new MyActivity(),答案是否定的。只有Android框架可以实例化一个Activity,它基于用于调用Context.startActivity()

1

如果你的意思是通过调用开始新的活动,那么小答案是YES,你可以做到这一点。

但是,如果你的意思是实例化,那么;不,你不能那样做。

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; 
} 
相关问题