2014-09-04 32 views
0

我想顯示包含MeSSAGE,ORDERS和PRODUCT的Tabactivity, 以下是main中的代碼,我只是不知道它爲什麼適用於Home片段,但不適用於NotificationsFragment無法識別MainActivity中的通知片段

private void displayView(int position) { 
    // update the main content by replacing fragments 
    android.app.Fragment fragment = null; 
    switch (position) { 
    case 0: 
     fragment = new HomeFragment(); 
     break; 
    case 1: 
     fragment = new NotificationsFragment(); 
     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"); 
    } 
} 

下面是從通知片段 代碼不知道什麼是錯與此一 請需要一些幫助。

@SuppressWarnings("deprecation") 
public class NotificationsFragment extends TabActivity { 
    public NotificationsFragment(){} 
    // TabSpec Names 
    private static final String INBOX_SPEC = "Messages"; 
    private static final String OUTBOX_SPEC = "Orders"; 
    private static final String PROFILE_SPEC = "Products"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.notifications_fragment); 

    TabHost tabHost = getTabHost(); 

    //Messages Tab 
    TabSpec msgSpec = tabHost.newTabSpec(INBOX_SPEC); 
    // Tab Icon 
    msgSpec.setIndicator(INBOX_SPEC, getResources().getDrawable(R.drawable.msg)); 
    Intent msgIntent = new Intent(this, MessagesFragment.class); 
    // Tab Content 
    msgSpec.setContent(msgIntent); 

    //Orders Tab 
    TabSpec ordersSpec = tabHost.newTabSpec(OUTBOX_SPEC); 
    ordersSpec.setIndicator(OUTBOX_SPEC, getResources().getDrawable(R.drawable.order)); 
    Intent orderIntent = new Intent(this, OrdersFragment.class); 
    ordersSpec.setContent(orderIntent); 

    //Products Tab 
    TabSpec productsSpec = tabHost.newTabSpec(PROFILE_SPEC); 
    productsSpec.setIndicator(PROFILE_SPEC, getResources().getDrawable(R.drawable.cart)); 
    Intent productIntent = new Intent(this, ProductsFragment.class); 
    productsSpec.setContent(productIntent); 

    //Adding all TabSpec to TabHost 
    tabHost.addTab(msgSpec); // Adding Message tab 
    tabHost.addTab(ordersSpec); // Adding Orders tab 
    tabHost.addTab(productsSpec); // Adding Products tab 
    } 
} 

這裏是我的家片段只是簡單的顯示列表視圖

public class HomeFragment extends Fragment{ 

     public HomeFragment(){} 
     ProgressBar feeds_progress; 

     LinearLayout llGroupHead, llAddPost; 
     Button btnAddPost; 

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

     createdView = inflater.inflate(R.layout.home_fragment, container, false); 

     feeds_progress = (ProgressBar) createdView.findViewById(R.id.pbarCenter); 

     return createdView; 
    } 

回答

0

你NotificationsFragment()是由TabActivity擴展和你試圖將其初始化爲一個片段。

private void displayView(int position) { 
// update the main content by replacing fragments 
android.app.Fragment fragment = null; 
switch (position) { 
case 0: 
    fragment = new HomeFragment(); 
    break; 
case 1: 
    fragment = new NotificationsFragment(); 
    break; 
default: 
    break; 
} 

使您的NotificationsFragment擴展片段或做您在HomeFragment中做的事情。