0

アクションバーとメニューがアクションバーにあります。

ハードメニューボタンに触れるとgetActionBar()nullが返されます。

一番下の 3 番目は、ハード メニュー ボタンの意味です。

ハードメニューボタン

次のようにアプリがクラッシュするのを防ぐことができます:if(getActionBar() != null) { // ... }

しかし、それは私がやりたいことではありません。変更 (追加/削除) するアクション バー アイテムが必要です。getActionBar()そのため、 null を返すwhile はできません。

getActionBar()なぜnullを返すのか誰にも分かりますか?

アップデート:

これが私のコードです:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
        if (getActionBar() != null) { // Action bar is null here when I click hard menu button.
                getActionBar().setDisplayHomeAsUpEnabled(true);
        }

        // Some logical operations here.

    // Get the menu.
    BaseActivity.menuOnActionBar = menu;
    return super.onCreateOptionsMenu(menu);   
}

私のアクティビティでは、更新が完了した後、アクション ビューを削除します (進行状況バーを表示するために、更新をクリックした直後にアクション ビューを xml に設定しました)。

menuOnActionBar.findItem(R.id.menu_refresh).setActionView(null); // This throws an error.

そして、menuOnActionBar変数定義BaseActivity:

public static Menu menuOnActionBar;

スローされるエラーは次のとおりです。E/AndroidRuntime(4193): java.lang.NullPointerException

4

1 に答える 1