ADD_APPLICATION_MENUITEM()和ADD_APPLICATION_MENUITEM2()的异同

本文对比了MTK中用于添加菜单的两个宏ADD_APPLICATION_MENUITEM()与ADD_APPLICATION_MENUITEM2()的区别。前者适用于固定数量的菜单,需指定子菜单数量;后者适用于动态菜单,通过标记结束子菜单项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTK添加菜单有两个宏
ADD_APPLICATION_MENUITEM()
ADD_APPLICATION_MENUITEM2()
他们之间有什么区别呢?

 


首先是结构不同:
ADD_APPLICATION_MENUITEM 需要要指明子菜单个数。例如下面第三个参数为子菜单个数
ADD_APPLICATION_MENUITEM((MENU_BARRING_OPTION,
                              0, 3,
                              MENU_BARRING_ACTIVATE,
                              MENU_BARRING_DEACTIVATE,
                              MENU_BARRING_QUERY, SHOW, NONMOVEABLE, DISP_LIST, STR_MENU_BARRING_OPTION, NULL));

ADD_APPLICATION_MENUITEM2 不需要指明子菜单个数,子菜单结尾处加一个MENU_ITEM_END标示子菜单项结束。例如
    ADD_APPLICATION_MENUITEM2((MENU_ID_UCM_INCALL_OPTION_NEW_CALL, MENU_ID_UCM_INCALL_OPTION,
                           MENU_ID_UCM_INCALL_OPTION_NEW_CALL_VOICE,
                            #ifdef __MMI_VOIP__
                           MENU_ID_UCM_INCALL_OPTION_NEW_CALL_VOIP,
                            #endif /* __MMI_VOIP__ */
                                MENU_ITEM_END,
                           SHOW, MOVEABLEWITHINPARENT, DISP_LIST,
                           STR_ID_UCM_NEW_CALL,0));

 


用法上需要注意什么呢?
ADD_APPLICATION_MENUITEM() 任何地方都可以使用。一般用于固定个数不变的菜单。还有叶子菜单(即最底层菜单)。
ADD_APPLICATION_MENUITEM2() 必须要包含子菜单,不能用于叶子菜单。它最大的一个作用是用于动态的菜单。我们知道MTK有个features_switch 里面有好多宏开关,根据宏开关变化 一些菜单也需要改变,这就用到了ADD_APPLICATION_MENUITEM2(), 因为它没有规定子菜单的个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值