2014-04-01 31 views
0

我正在開發一個android應用程序,我想創建一個ListFragment並將其作爲一個片段在導航抽屜中使用。有可能的?我可以在導航抽屜中使用ListFragment嗎?

我做ListFragment,但我有我的主要活動的錯誤:

private void displayView(int position) { 
    // update the main content by replacing fragments 
    Fragment fragment = null; 
    ListFragment lf=null; 
    switch (position) { 
    case 0: 
     fragment = new HomeFragment(); 
     break; 
    case 1: 
     fragment = new FindPeopleFragment(); 
     break; 
    case 2: 
     fragment = new PhotosFragment(); 
     break; 
    case 3: 
     lf = new CommunityFragment(); 
     break; 
    case 4: 
     fragment = new PagesFragment(); 
     break; 
    case 5: 
     fragment = new WhatsHotFragment(); 
     break; 

    default: 
     break; 
    } 
    if (lf != null) { 
     FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.frame_container, lf).commit(); 

     // update selected item and title, then close the drawer 
     mDrawerList.setItemChecked(position, true); 
     mDrawerList.setSelection(position); 
     setTitle(navMenuTitles[position]); 
     mDrawerLayout.closeDrawer(mDrawerList); 
    } 

    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"); 
    } 

的錯誤是:該方法在類型FragmentFransaction替換(INT,片段)是不適用的參數(INT, ListFragment)。

該錯誤是在這行代碼(在替換):

if (lf != null) { 
     FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.frame_container, lf).commit(); 

其中LF是ListFragment。

所以我可以使用ListFragment與導航抽屜?

+2

你能張貼ListFragment進口?我導入ListFragment的 – Raghunandan

+0

:android.support.v4.app.ListFragment; – user3481497

+0

你需要使用'import android.app.ListFragment'因爲你擴展了Activity,而你正在使用'getFragmentManager()'。我可以回答假設,但我正在等待你現在回覆的回覆 – Raghunandan

回答

1

您在使用ListFragmentandroid.support.v4.app.ListFragment。如果您確實想要使用支持包,則您的Activity應該延伸FragmentActivity,然後您應該撥打getSupportFragmentManager()而不是getFragmentManager()。否則請使用android.app.ListFragment。所以,probaly應更換此:

import android.support.v4.app.ListFragment; 

與此:

import android.app.ListFragment; 
+0

我解決它與getSupportFragmentManager()和android.support.v4.app.ListFragment import.But另一個錯誤appeard。在抽屜導航我想使用listFragment和片段。現在,它在片段處的錯誤:'code'if(fragment!= null){FragmentManager fragmentManager = getSupportFragmentManager();}} \t \t \t fragmentManager.beginTransaction() \t \t \t \t \t .replace(R.id.frame_container,片段).commit(); – user3481497