Android-проблема в меню активности в группе активности - PullRequest
2 голосов
/ 25 августа 2011

Я использовал технику (http://united -coders.com / nico-heid / use-android-Activitygroup-внутри-Tabhost-to-Show-Different-Activity ) разработать приложение, в котором у меня есть 3 вкладки, и каждая вкладка имеет свою группу ActivityGroup. У меня есть меню для каждого вида деятельности. Но когда я нажимаю кнопку меню, меню не появляется. Сделав несколько случайных следов, я обнаружил, что если я реализую onCreateOptionsMenu в ActivityGroup, то появится только меню. Я не могу выполнить onCreateOptionsMenu Activity. Пожалуйста, предложите, как использовать меню Activity, поскольку у меня есть много действий в одной ActivityGroup, и реализация onCreateOptionsMenu в ActivityGroup не является правильным способом решения этой проблемы.

1 Ответ

1 голос
/ 25 августа 2011

Вот как вы катитесь с ним: В вашем классе 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;
}
...