2014-09-06 54 views
0

我試圖在fragment中創建可滑動的選項卡。因此,在viewpager中添加選項卡。但是,當actionBar.setHomeButtonEnabled(false)爲空指針異常無法instastaite活動時,會給我錯誤 。我試圖解決過去兩天的問題,但無法做到這一點。請幫我解決它,請找到我的片段類。actionBar.setHomeButtonEnabled在片段中給出錯誤爲空指針異常

公共類HomeFragment擴展片段實現 ActionBar.TabListener {

View FaramentView; 
private FragmentActivity context; 

private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private ActionBar actionBar; 
// Tab titles 
private String[] tabs = { "Top Rated", "Games", "Movies" }; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    FaramentView = inflater.inflate(R.layout.home_fragment, null, false); 

    return FaramentView; 

} 

@Override public void onAttach(Activity activity) { 

    context = (FragmentActivity) activity; 


    super.onAttach(activity); 
} 

@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override 
public void onActivityCreated(Bundle savedInstanceState) 
{ 

    super.onActivityCreated(savedInstanceState); 
    // Initilization 
      viewPager = (ViewPager) FaramentView.findViewById(R.id.pager); 
      actionBar = context.getActionBar(); 

      mAdapter = new TabsPagerAdapter(context.getSupportFragmentManager()); 

      viewPager.setAdapter(mAdapter); 
      actionBar.setHomeButtonEnabled(false); 
      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);   

      // Adding Tabs 
      for (String tab_name : tabs) { 
       actionBar.addTab(actionBar.newTab().setText(tab_name) 
         .setTabListener(this)); 
      } 

      /** 
      * on swiping the viewpager make respective tab selected 
      * */ 
      viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

       @Override 
       public void onPageSelected(int position) { 
        // on changing the page 
        // make respected tab selected 
        actionBar.setSelectedNavigationItem(position); 
       } 

       @Override 
       public void onPageScrolled(int arg0, float arg1, int arg2) { 
       } 

       @Override 
       public void onPageScrollStateChanged(int arg0) { 
       } 
      }); 
} 

public LayoutInflater getSystemService(String layoutInflaterService) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

} 

}

+0

您是使用android.app.Activity還是android.support.v7.app.ActionBarActivity? – daentech 2014-09-06 10:51:11

+0

使用android.app.Activity – user3651987 2014-09-06 10:53:01

+0

啊,我剛剛看到你的FragmentActivity。如果你使用FragmentActivity我相信你需要使用getSupportActionBar() – daentech 2014-09-06 10:55:32

回答

7

在活動下你的Android清單文件中添加

android:theme="@android:style/Theme.Holo" 

我想補充這作爲評論,但我不能'由於聲譽的數量。

+0

非常感謝你 – user3651987 2014-09-06 11:58:31

+0

謝謝你這麼多:) – 2017-03-13 10:41:41