(4.1.1.2)メニュー作成関数:onPrepareOptionsMenuとonCreateOptionsMenuの違い
2105 ワード
[java] view plain copy
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0,1,1,「現在位置」)
menu.add(0,2,2,「地図切替」);
if(IsStart == STOPING)
menu.add(0,3,3,「記録開始」);
else
menu.add(0,3,3,「記録停止」);
menu.add(0,4,4,「クリアパス」);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onPrepareOptionsMenu(menu);
menu.clear();
menu.add(0,1,1,「現在位置」)
menu.add(0,2,2,「地図切替」);
if(IsStart == STOPING)
menu.add(0,3,3,「記録開始」);
else
menu.add(0,3,3,「記録停止」);
menu.add(0,4,4,「クリアパス」);
return super.onPrepareOptionsMenu(menu);
}
違い:
onCreateOptionsMenu:
一度だけ呼び出され、Menu表示の前に一度だけ呼び出され、その後は呼び出されません.
onPrepareOptionsMenu:
onPrepareOptionsMenuは、display Menuの前に呼び出されるたびに、Menuボタンを1回押すだけで呼び出されます.だからここでmenuを動的に変えることができます.
注意:
onPrepareOptionsMenu(Menumenu)関数では、まず次の呼び出しが必要です.
[java] view plain copy
super.onPrepareOptionsMenu(menu);
menu.clear();
clearがなくて直接addすると、メニューのメニュー項目が「追加」され、menuキーを押し続けるにつれてメニュー項目が増加します.
またandroidシステムのデフォルトのメニュースタイルは最大3行までサポートされており、4項目あれば1行2行...スタイルをカスタマイズするには、xmlファイルを使用してスタイルを定義します.
実際のプロジェクト:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0,1,1,「現在位置」)
menu.add(0,2,2,「地図切替」);
if(IsStart == STOPING)
menu.add(0,3,3,「記録開始」);
else
menu.add(0,3,3,「記録停止」);
menu.add(0,4,4,「クリアパス」);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onPrepareOptionsMenu(menu);
menu.clear();
menu.add(0,1,1,「現在位置」)
menu.add(0,2,2,「地図切替」);
if(IsStart == STOPING)
menu.add(0,3,3,「記録開始」);
else
menu.add(0,3,3,「記録停止」);
menu.add(0,4,4,「クリアパス」);
return super.onPrepareOptionsMenu(menu);
}
違い:
onCreateOptionsMenu:
一度だけ呼び出され、Menu表示の前に一度だけ呼び出され、その後は呼び出されません.
onPrepareOptionsMenu:
onPrepareOptionsMenuは、display Menuの前に呼び出されるたびに、Menuボタンを1回押すだけで呼び出されます.だからここでmenuを動的に変えることができます.
注意:
onPrepareOptionsMenu(Menumenu)関数では、まず次の呼び出しが必要です.
[java] view plain copy
super.onPrepareOptionsMenu(menu);
menu.clear();
clearがなくて直接addすると、メニューのメニュー項目が「追加」され、menuキーを押し続けるにつれてメニュー項目が増加します.
またandroidシステムのデフォルトのメニュースタイルは最大3行までサポートされており、4項目あれば1行2行...スタイルをカスタマイズするには、xmlファイルを使用してスタイルを定義します.
実際のプロジェクト:
/*onCreateOptionsMenu:
, Menu , 。
onPrepareOptionsMenu:
onPrepareOptionsMenu display Menu , , Menu , 。 menu。*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.clear();
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.util_share, menu);
return super.onPrepareOptionsMenu(menu);
}