Android开发经验谈Android知识Android Tips

Android_menu

2016-03-14  本文已影响331人  Ling912

1.在menu下新建一个xml menu文件

关于android:showAsAction属性,这个属性可以接收的属性值有:--1--.alaways:这个值会使菜单项一直显示在ActionBar上。--2--ifRoom:如果有足够的空间,这个值会使菜单显示在ActionBar上。--3--.never:这个值菜单永远不会出现在ActionBar是。--4--.withText:这个值使菜单和它的图标,菜单文本一起显示;

图1:menu.xml

2.在activity中复写onCreateOptionsMenu

这里需要做的是找到menu文件,也就是实例化一个menu对象;

3.在activity中复写onPrepareOptionsMenu

这里需要做的是找到每一个的menu的item项、跟前一步骤类似。

图2:activity里面的create和preare方法

4.在activity中复写onOptionsItemSelected

既然有menu菜单,那肯定要有点击事件拉,没点击事件那还有毛用,对吧,点击事件就需要重写onOptionsItemSelected,里面加一个switch,里面case每个item的id就可以了,就这么简单。

图3:click点击事件

题外:关于invalidateOptionsMenu()

invalidateOptionsMenu是动态的改变menu菜单的item项的是否有效性,为在很多时候都需要用到,例如让menu项不能点击。这个时候就要重写invalidateOptionsMenu()在这个方法里面写上控制item项的相关代码,然后在调用这个方法。

最后浅谈下menu的执行顺序:

先调用onCreateOptionsMenu(),然后在调用onPrepareOptionsMenu(),在每次用户访问菜单的时候都调用onPrepareOptionsMenu(),而不是调用onCreateOptionsMenu(),因为一个activity就只有一个menu对象。如果调用了invalidateOptionsMenu(),那么当用户再次访问菜单的时候也会调用onPrepareOptionsMenu(),而不会另外再创建。

上一篇下一篇

猜你喜欢

热点阅读