2014-02-07 3 views
4

Ниже часть моего кода:ListView и TabWidget в фрагменте

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

Как я сделать HomeFragment ListView или вкладки виджет.

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class HomeFragment extends Fragment { 

    public HomeFragment(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.tabs_scroll, container, false); 
     return rootView; 
    } 
} 

, если я должен проходит listfragment линия:

fragmentManager.beginTransaction() 
         .replace(R.id.frame_container, fragment).commit(); 

флаг ошибки: "The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, HomeFragment)"

пожалуйста, как мне сделать эту работу, и как я до сих пор добавить вкладку виджет предполагая, что я не хочу, чтобы сделать его ListView

ответ

1

Попробуйте это ..

Вы не можете сделать это Fragment fragment = new HomeFragment();, если вы это сделаете, вы получите Can not convert HomeFragment to Fragment, потому что HomeFragment - это класс фрагмента, поэтому вы не можете назначить его в Fragment. Итак, вам нужно понравиться HomeFragment fragment = new HomeFragment(); Например, из вашего кода.

switch (position) { 
     case 0: 
      HomeFragment fragment = new HomeFragment(); 

      if (fragment != null) { 
        FragmentManager fragmentManager = getSupportFragmentManager(); 
        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"); 
      } 
      break; 

      // do like this for remaining cases 

     default: 
      break; 
     } 
Смежные вопросы