Android用Option Menu
を作成したいので、このサイトにアクセスしました。彼らのスクリプトでは、onPrepareOptionsMenu
が見つかりました。Android 2.3.3コンパイラを使用してonPrepareOptionsMenu
の有無にかかわらずコンパイルと実行を試みましたが、両方とも動作しました。違いはありません。
public boolean onCreateOptionsMenu(Menu menu){
//code here
}
public boolean onOptionsItemSelected(MenuItem item){
//code here
}
public boolean onPrepareOptionsMenu(Menu menu){
//code here
}
実際にonPrepareOptionsMenu
メソッドとは何ですか?その方法は重要ですか?メソッドを削除してもいいですか?
添加
ああ、Android 3.0では、アクションバーはAction Bar
を作成するための代替方法であり、onPrepareOptionsMenu
を使用して、Option Menu
。そうですか?
ありがとうございました...
[〜#〜] api [〜#〜] を見てください:
表示する画面の標準オプションメニューを準備します。これは、メニューが表示されるたびに、メニューが表示される直前に呼び出されます。このメソッドを使用して、アイテムを効率的に有効/無効にしたり、コンテンツを動的に変更したりできます。
ユーザーに表示される前にメニューを変更する場合は、onPrepareOptionsMenu
にそれを行うためのコードを配置できます。状況によっては、これを動的に使用して一部のメニューオプションを無効にしました。
メニューオプションを無効にする場合の例として、目的地を指定する方法があるアプリがありました。私のメニューオプションの1つは、目的地までのルートを計算することでした。ただし、宛先が指定されていない場合、そのオプションは適用されなかったので、onPrepareOptionsMenu
を使用して、適用できないメニューオプションを無効にしました。
From Android 3.0以降、メニューバーであるActionBarがあります。最も重要な項目はActionBar自体に入りますが、アクションバーに十分なスペースがない場合はオーバーフローが発生しますメニュー項目は常にオーバーフローメニューにあり、アクションバー自体には決してないように指定できます。一部のデバイスでは、アクションバーのオーバーフローはデバイスの永続的なメニューボタンに対応しますが、メニューボタンオーバーフローメニューは、アクションバーの右側に3つの垂直ドットとして表示されます。
onCreateOptionsMenuは、アクティビティが最初に作成されたときに1回呼び出されます。 falseを返す場合、オプションメニューは表示されず、onPrepareOptionsMenuは呼び出されません。
OnCreateOptionsMenuがtrueを返す場合、onPrepareOptionsMenuもアクティビティが表示される前に呼び出され、オプションメニューが無効化されるたびに呼び出されます。アイテムの作成後に有効化/無効化、表示/非表示、または追加/削除する必要がある場合は、onPrepareOptionsMenuを使用します。
メニューが変わらない場合は、onCreateOptionsMenuを使用します。