私はこのように似たようなことをしました:
アクションバーメニューには、ログイン項目とログアウト項目の両方が既に存在します (項目に ID を簡単に割り当てることができるように、コードで作成するのではなく、xml に配置することをお勧めします)。次に、作成時にメニューへの参照を保持して、後で変更できるようにします。
Menu myActionBarMenu;
/**
* Creates action bar items.
*/
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menuNameHere, menu);
myActionBarMenu = menu;
}
次に、ユーザーがログインしていることがわかったら、次のようにログイン項目の可視性を false に設定します。
myActionBarMenu.findItem(R.id.logInAction).setVisible(false);
myActionBarMenu.findItem(R.id.logOutAction).setVisible(true);
ユーザーがログアウトしている場合の可視性を反転します。
xml メニューは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/logInAction"
android:showAsAction="ifRoom"
android:title="Log In"/>
<item
android:id="@+id/logOutAction"
android:showAsAction="ifRoom"
android:title="Log Out"/>
</menu>