6

テンプレートによって作成された NavigationDrawer を使用しています (新しいプロジェクトを開始するとき)。マテリアル デザインの互換性を取得しようとしているので、AppCompat v7 を使用しています。これらの手順に従って、ツールバーを ActionBar として設定し (つまり、ツールバーで setSupportActionBar を使用)、(onCreateView 内の) NavigationDrawerFragment で NPE を取得しました。

 mDrawerListView.setAdapter(new ArrayAdapter<String>(
            getActionBar().getThemedContext(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1, ...

今、問題はフラグメント内の getActionBar() メソッドにあると思われます:

   private ActionBar getActionBar() {
    return ((ActionBarActivity) getActivity()).getSupportActionBar();
}

しかし、私には理由がわかりません - NavigationDrawerFragment で setUp() を呼び出す前に、アクティビティの onCreate で setSupportActionBar(toolbar) を呼び出しました...

なぜこれが起こっているのか、誰かが手がかりを持っているなら、助けてください!

4

2 に答える 2

4

getActionBar().getThemedContext()と置き換えるだけですgetActivity()

于 2014-10-31T18:23:04.737 に答える