テクニック(http://united-coders.com/nico-heid/use-android-activitygroup-within-tabhost-to-show-different-activity)を使用して、3つのタブと各タブがあるアプリを開発しました独自のActivityGroupがあります。アクティビティごとにメニューがあります。しかし、メニューボタンを押してもメニューが表示されません。いくつかのランダムな軌跡を実行した後、ActivityGroupにonCreateOptionsMenuを実装すると、メニューのみが表示されることがわかりました。ActivityのonCreateOptionsMenuを実行できません。単一のActivityGroupに多くのアクティビティがあり、ActivityGroupにonCreateOptionsMenuを実装することは、この問題を処理する正しい方法ではないため、Activityのメニューの使用方法を提案してください。
1 に答える
1
これを使用する方法は次のとおりです。ActivityGroupクラスonCreateOptionMenu()で、現在Activity
の'sを呼び出します。onCreateOptionMenu()
public boolean onPrepareOptionsMenu(Menu menu)
{
Activity activity = getLocalActivityManager().getCurrentActivity();
return activity.onPrepareOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
Activity activity = getLocalActivityManager().getCurrentActivity();
return activity.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected (MenuItem item)
{
Activity activity = getLocalActivityManager().getCurrentActivity();
return activity.onOptionsItemSelected(item);
}
そしてあなたの個人でActivity
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
return true;
}
@Override
public boolean onOptionsItemSelected (MenuItem item)
{
switch (item.getItemId())
{
case R.id.MENU_LOGOUT:
Dialog.showToast(this, "message");
return true;
case R.id.MENU_HELP:
break;
case R.id.MENU_ABOUT:
break;
}
return super.onOptionsItemSelected(item);
}
これらのメソッドをオーバーライドActivity
するだけでなく、必要な場合Menu
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
return true;
}
于 2011-08-25T08:09:03.607 に答える