2015-07-04 84 views
0

我目前有一個導航抽屜,一個操作欄(無工具欄),以及我定義爲父項Theme.AppCompat.Light的樣式。我想留在動作條,但是當我使用的是父母,我成爲了以下錯誤:帶AppCompat和普通操作欄的導航抽屜?

"Attempt to invoke virtual method 'android.content.Context android.app.ActionBar.getThemedContext()' on a null object reference" 

在該代碼:

mDrawerListView.setAdapter(new ArrayAdapter<String>(
      getActionBar().getThemedContext(), 
      R.layout.navdrawer_item_row, 
      android.R.id.text1, 
      new String[]{ 
        getString(R.string.title_section1), 
        getString(R.string.title_section2), 
        getString(R.string.title_section3), 
      })); 

有任何一個解決的建議來解決? 在此先感謝

回答

2

您需要使用getSupportActionBar()而不是getActionBar()。在您的代碼中更改所有這些內容。

下面是更正後的代碼:

ActionBar ab = getSupportActionBar(); 
    mDrawerListView.setAdapter(new ArrayAdapter<String>(
     ab.getThemedContext(), 
     R.layout.navdrawer_item_row, 
     android.R.id.text1, 
     new String[]{ 
       getString(R.string.title_section1), 
       getString(R.string.title_section2), 
       getString(R.string.title_section3), 
     })); 

不要忘記導入android.support.v7.app.ActionBar

而且在風格改變家長Theme.AppCompat.Light.DarkActionBar

+0

不能使用getSupportedActionBar(),「無法解析法‘getSupportedActionBar()’」 – Muffin

+0

只是糾正代碼。請試試這個 – Psypher

0

要使用程序兼容性的主題,你的活動必須擴展AppCompatActivity(或棄用ActionBarActivity),並獲取操作欄調用getSupportActionBar()方法。

0

以上都不適合我。實際上,刪除: android:theme="...."application xml標記AndroidManifest.xml文件。希望這有助於拯救某人我曾經的鬥爭。

這個問題,當我在Android Studio中創建2.3.3導航抽屜與活動發生API 25