これは、このような単純な問題に対する非常に難しい挑戦のようです!
- Androidアプリにアイコンを持つMenuItemがあります。
- MenuItem のコンテナーはアクション バーです (appcompat バージョン)
- ActionBarへの参照があります
- ユーザーはアイコンを MenuItem に変更できます。
- ブール値を使用して、アイコンの現在のステータスを追跡します (2 つのアイコンのうちの 1 つだけにすることができます)。
- ビューが縦向きから横向き (またはその逆) に変更されると、それらのアクティビティは破棄され、すべての変数などが取り込まれます。
3 失敗したソリューション:
通常、Bundle を使用してこの問題を解決します。ただし、Bundle はプリミティブとパーセルブルのみを受け入れます。MenuItem をパーセルするにはどうすればよいですか (ある場合)。
別の方法は、新しいアクティビティで MenuItem を取得し、上記のブール値を使用してアイコンの値を決定することです。ただし、MenuItem を最初に押さずに取得する方法はないようです (つまり、this.getMenu())。
もう 1 つの方法は、ブール値に応じて MenuItem を押すことをシミュレートすることです。ただし、MenuItem を押すことをシミュレートする方法はないようです (主に、MenuItem を取得する方法がないためです!)。
向きが変わったときに新しいアクティビティのアクション バーの MenuItem のロゴを変更するにはどうすればよいですか?