2015-01-15 49 views
3

我在操作欄上使用了菜單項。但是在創建方法中,它給了我空指針異常。請幫助在getActionBar方法中獲取空指針異常

感謝

這裏是onCreate方法的代碼

// TODO Auto-generated method stub 
    super.onCreate(paramBundle); 
    setContentView(R.layout.activity_home); 


    final ActionBar localActionBar=getActionBar(); 
    localActionBar.setNavigationMode(2); 
    this.mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager()); 
    this.mViewPager = ((ViewPager)findViewById(R.id.pager)); 
    this.mViewPager.setAdapter(this.mSectionsPagerAdapter); 
     this.mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() 
     { 
      public void onPageSelected(int paramAnonymousInt) 
      { 
       localActionBar.setSelectedNavigationItem(paramAnonymousInt); 
      } 
      }); 
     for (int i = 0; i < this.mSectionsPagerAdapter.getCount(); i++) 
     { 
      localActionBar.addTab(localActionBar.newTab().setText(this.mSectionsPagerAdapter.getPageTitle(i)).setTabListener(this)); 
     } 

} 

和日誌貓錯誤

log01-15 13:37:09.092: E/AndroidRuntime(15604): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.chronos.cricketgraph/com.chronos.cricketgraph.HomeActivity}: java.lang.NullPointerException 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2114) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2139) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.ActivityThread.access$700(ActivityThread.java:143) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.os.Looper.loop(Looper.java:137) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.ActivityThread.main(ActivityThread.java:4960) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at java.lang.reflect.Method.invokeNative(Native Method) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at java.lang.reflect.Method.invoke(Method.java:511) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at dalvik.system.NativeStart.main(Native Method) 
01-15 13:37:09.092: E/AndroidRuntime(15604): Caused by: java.lang.NullPointerException 
01-15 13:37:09.092: E/AndroidRuntime(15604): at com.chronos.cricketgraph.HomeActivity.onCreate(HomeActivity.java:48) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.Activity.performCreate(Activity.java:5203) 
01-15 13:37:09.092: E/AndroidRuntime(15604): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
' 
+0

做你的活動有一個動作條?你在使用其他主題嗎? –

回答

1

如果使用Theme.AppCompat,然後擴展ActionBarActivity。同時使用getSupportActionBar()而不是getActionBar()。您可能還需要啓用標題(但我不知道如果多數民衆贊成適用於所有的Android版本) - 所以requestWindowFeature(Window.FEATURE_NO_TITLE);應該被刪除 - 你有沒有在你的主題:

<item name="windowActionBar">false</item> 
<item name="android:windowNoTitle">true</item> 

任何機會。

+0

是的......主題是AppCompat.Light .... android:minSdkVersion =「11」 – cryptic

+0

用'getSupportActionBar()'替換'getActionBar()'是否解決了你的問題? – marcinj

0

取決於您的版本(在Manifest中),您需要使用getSupportActionBar();getActionBar();。你也確定你的homeActivyActivity.class延伸?

1

使用主題爲您的應用程序提供AcionBar,也許你可以包括appcompact支持庫。

你可以給看看this post

1

你延長ActionBarActivity?

public class MainActivity extends FragmentActivity implements ActionBar.TabListener{ 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    final ActionBar actionBar = getActionBar(); 
    actionBar.show(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    ... 
} 
+0

我的活動延伸ActionBar.TabListener ...但即使我嘗試了ActionBarActivity ...但它給了我錯誤 – cryptic

+0

它應該擴展ActionBarActivity實現ActionBar.TabListener – Eoin

+0

這將有助於知道什麼行導致崩潰? – Eoin

0

嘗試使用getSupportedActionBar方法。我想你使用另一個版本的android

1
  1. 你可以改變style.xml文件。 舉例: <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style>

  2. 而後在.java文件中擴展了Activity類。 例如: public class MainActivity extends Activity {.....}

+0

例如什麼?你需要提供這個例子。 –