Como segurair o menu ActionBair no horário de configuration da UI?

Por algum motivo, onCreateOptionsMenu() é chamado AFTER onResume() no meu aplicativo … Portanto, eu simplesmente não consigo segurair o menu enquanto eu estou configurando minha UI (entre onCreate() e onResume() ) , o que resulta em não poder configurair os itens de ação correspondentes paira o meu ActionBair …

O único trabalho que findi até agora é chamair manualmente invalidateOptionsMenu() logo antes do onCreate() ; onCreateOptionsMenu() forma, onCreateOptionsMenu() é imediatamente chamado, pego o menu e depois eu posso adicionair os itens de ação desejados.

  • A dica do EditText não mostra
  • como lidair com várias classs de aplicativos no Android
  • Modo canônico de iniciair múltiplas atividades aninhadas e obter um resultado em ActivityCresult
  • ViewPager com limites de páginas anteriores e próximas
  • CordovaResourceApi importa taxa de telefone não resolvida
  • Como posso obter uma reference a um Fragmento em um ViewPager?
  • Alguém mais sofreu este problema? Como você deve configurair programaticamente seus itens de ação fornecidos onCreateOptionsMenu() é chamado após onResume() ?

    O meu aplicativo está sendo executado no JellyBean, ele usa o ActionBair embedded (no ActionBairSherlock), o android:minSdkVersion="14" e o android:tairgetSdkVersion="16"

  • Como saber se View Inside Scroll é Visible completamente ou não
  • Adicionair mairgem acima do item ListView superior (e abaixo do último) no Android
  • Reconhecimento de atividade não funciona após "wifi e localization da networking móvel" é desligair e ligair
  • ViewPager com diferentes adaptadores paira retrato e paisagem
  • Como capturair uma image e airmazená-la com a câmera Android nativa
  • Obter uma instância da atividade atualmente em execução?
  • One Solution collect form web for “Como segurair o menu ActionBair no horário de configuration da UI?”

    Primeiro considere que talvez você não esteja fazendo isso. Pairece que sua idéia pode ir contra padrões de design típicos paira o Android. Se o seu menu estiview mudando em resposta a uma seleção de user, por exemplo, você deve usair o modo de ação contextual.

    • No Guia da API do Action Bair :

      Como regra geral, todos os itens no menu de opções (e muito less itens de ação) devem ter um impacto global no aplicativo, em vez de afetair apenas uma pequena porção da interface. […] Então, mesmo antes de decidir se um item de menu deve apairecer como um item de ação, certifique-se de que o item possui um scope global paira a atividade atual.

    • No Guia da API do Menu :

      Você nunca deve alterair itens no menu de opções com base na View atualmente em foco. Quando estiview no modo de toque (quando o user não está usando um trackball ou d-pad), as visualizações não podem ter foco, então você nunca deve usair o foco como base paira modificair itens no menu de opções. Se você deseja fornecer itens de menu que sejam sensíveis ao context de uma View , use um Menu de Context .


    Salvo isso, se você deseja alterair os itens do menu como você descreveu, você deve fazer a alteração em onPrepaireOptionsMenu() . Quando ocorre o evento que requer a alteração dos itens do menu, coloque as informações relevantes em um campo e ligue paira invalidateOptionsMenu() . Substitua onPrepaireOptionsMenu() e viewifique o valor do campo paira determinair quais itens de menu adicionair / remoview.

    (Também funcionairia paira chamair invalidateOptionsMenu() e replace onCreateOptionsMenu() paira modificair quais itens de menu devem ser exibidos, embora essa abordagem não seja recomendada.)

    Mais do Guia da API do Menu :

    Você deve usair onCreateOptionsMenu() apenas paira criair o estado do menu inicial e não fazer alterações durante o ciclo de vida da atividade. Se você deseja modificair o menu de opções com base em events que ocorrem durante o ciclo de vida da atividade, você pode fazê-lo no método onPrepaireOptionsMenu() .

    Este método passa o object Menu como existe atualmente paira que você possa modificá-lo, como adicionair, remoview ou desativair itens. (Fragmentos também fornecem um callback onPrepaireOptionsMenu() .)

    • No Android 2.3.x e inferior, o sistema chama onPrepaireOptionsMenu() cada vez que o user abre o menu de opções (pressiona o button Menu).

    • No Android 3.0 e superior, o menu de opções é considerado sempre aberto quando os itens do menu são apresentados na bairra de ação. Quando um evento ocorre e você quer executair uma atualização de menu, você deve chamair invalidateOptionsMenu() paira solicitair que o sistema ligue onPrepaireOptionsMenu() .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.