onCreateOptionsMenu和onPrepareOptionsMenu的区别
来源:互联网 发布:淘宝店怎么关 编辑:程序博客网 时间:2024/05/16 07:27
转自:http://blog.csdn.net/chengyingzhilian/article/details/8054993
在做菜单的功能,发现,菜单越来越多,后来仔细看了他们的区别,如下:
但是onCreateOptionsMenu和onPrepareOptionsMenu的差別在哪呢?
android中可以重写activity的两个方法进行创建菜单:onPrepareOptionsMenu(Menu menu),onCreateOptionsMenu。
两种方法的区别是,前者是每次点击menu键都会重新调用,所以,如果菜单需要更新的话,就用此方法。而后者只是在activity创建的时候执行一次。
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);
}
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- 【android】onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- android onPrepareOptionsMenu onCreateOptionsMenu的区别
- 《Effective C++ 》学习笔记-第六章 内存简单概念 以及 空类(empty class 条款39略微提到)
- POJ 3034 DP
- 会场安排问题
- 迪米特法则
- windows最基本的操作
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- Google I/O 2014之Android面面观
- 【C++基础 10】四种cast转换的区别
- Extjs 的apply, clone, merge笔记
- Django之模板参数
- Unity3d实现画线
- 多条命令
- Linux 编写线程,调用pthread_create,pthread_join出现undefined reference to..问题
- vim注释代码