zoukankan      html  css  js  c++  java
  • onCreateOptionsMenu和onPrepareOptionsMenu的区別

    android中可以重写activity的两个方法进行创建菜单:onPrepareOptionsMenu(Menu menu),onCreateOptionsMenu。

    两种方法的区别是,前者是每次点击menu键都会重新调用,所以,如果菜单需要更新的话,就用此方法。而后者只是在activity创建的时候执行一次。

    值得注意的是,在使用前者的时候,如果你每次都调用了menu.add()方法的话,那么菜单中的项目就会越来越多,所以,一般情况下是要调用一下menu.clear()的。
     
    onCreateOptionsMenu
      只會呼叫一次,他只會在MENU顯示之前,去做一次!!!之後就不會再去呼叫!


    onPrepareOptionsMenu
      onPrepareOptionsMenu是每次在display menu之前,都會去呼叫,
      只要按一次menu按鍵,就會呼叫一次。
      所以你會發現每次只要按一次menu按鍵,
      menu選單就會多兩個(因為我們預設是兩個)
      你可以利用onPrepareOptionsMenu來做update menu狀態的動作


    如果你要把menu現有的option清空,就是下面那行CODE

    menu.clear();

    还有,在fragment中的onCreateOptionsMenu和Activity中的参数不同的,多了个MenuInflater,所以在fragment中调用MenuInflater的时候,要这么调用:

    MenuInflater inflater = this.getActivity().getMenuInflater();

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    // 在onCreateOptionsMenu()之前必须在onCreate中调用setHasOptionsMenu(true)
    inflater.inflate(R.menu.menu_three, menu);   
    super.onCreateOptionsMenu(menu, inflater);
    }

  • 相关阅读:
    Java基础——原码, 反码, 补码 详解
    为什么Java byte 类型的取值范围是-128~127
    JAVA 各种数值类型最大值和最小值 Int, short, char, long, float,&nbs
    JDK config
    为什么要设置Java环境变量(详解)
    什么是JAR包?
    如何用python将一个时间序列转化成有监督学习
    ImportError: numpy.core.multiarray failed to import
    搭建SDN网络——mininet
    回溯法解决最大团问题
  • 原文地址:https://www.cnblogs.com/mumue/p/2450858.html
Copyright © 2011-2022 走看看