开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 12952|回复: 2
收起左侧

[其他教程] 【火山教程】安卓菜单操作实例讲解(安卓基本类)

[复制链接]
结帖率:94% (66/70)
发表于 2018-12-25 09:46:59 | 显示全部楼层 |阅读模式   河北省邯郸市
本帖最后由 创世魂 于 2018-12-25 09:48 编辑

火山图文教程官网:http://doc.voldp.com/菜单操作实例讲解
作者:创世魂

● 菜单操作准备工作


准备工作1:
放一个“线性布局器”,右侧属性设置“横向布局”。
“线性布局器”内放置两个“按钮”。
最后“线性布局器”的外侧,放一个文本框。
不会“设计界面”的请观看文本操作实例
本类同样需要“查看帮助”,如果不会请看文本操作实例


准备工作2:
保存“布局”后,在“代码编辑器”界面如下图所示,分别给“按钮1”和“按钮2”,这是“按钮”的“内容”(也就是标题)。
为了方便区分,可以给“文本框”设置一个“白色”背景。
黄色箭头指向的按钮,可以弹出“颜色选择器”,不需要手动输入“颜色值”。


准备工作3:
“右键”选择“启动类窗口”虚拟方法。


选择“通知_初始化选项菜单”,点击“添加”


添加后会自动在“代码编辑区”出现如下图所示的“表格”代码。


重新打开“启动类窗口”虚拟方法,选择“通知_菜单项被选择”,点击“添加”。


添加后会自动生成“如下图”所示的“表格代码”。


重新打开“启动类窗口”虚拟方法,选择“通知_初始化组件上下文菜单”,点击“添加”。


添加后会自动生成“如下图”所示的“表格代码”。



一、菜单

● 加入菜单项


帮助文档如下图:
打开后可以看到“本方法”有四个参数和一个“菜单项”返回值,并且“本方法”也支持“动态调用”。
参数4:有默认值“-1”,并且有“三个”整数值可以填写,分别代表“不同的意思”。

代码编写如下图:
我们在“通知_初始化选项菜单”方法下,可以利用“本方法”添加“菜单”。
这里不需要“创建变量”,因为本“虚拟方法”有“菜单”参数,直接用“选项菜单”加本方法名即可添加。
无论是“变量”形式调用,还是下面的“参数”形式调用,均属于“动态调用”。
动态调用“参数1”可以省略不写,也不用“逗号”隔开。
所以下图代码直接输入“参数2的ID值”。
在“菜单2”可以设置一个“参数4”为选中状态。

运行效果如下图:
左图:可以看到“左上角”有三个点的“按钮”,这个就是“菜单”按钮。
右图:点击后就成功的“显示菜单”,并且“菜单2”也是“选中”状态。
        

设置“菜单”被选择事件:
在“通知_菜单项被选择”虚拟方法下。
用“如果”判断“是否为上下文菜单”等于“假”。
最后用参数“所选择菜单项.标题”就可以取出“被单击选择”菜单的标题。

● 加入菜单项2


帮助文档如下图:
打开后可以看到“本方法”只有“两个”参数,没有返回值。

代码编写如下图:
依然是“通知_初始化选项菜单”方法下。
创建一个“菜单信息”变量,然后利用“本变量”来进行“菜单添加”工作。
随便加入“三个菜单”后,利用“菜单”的“加入菜单项2”方法。
把创建的“菜单信息”变量名称写入“参数”,就可以创建这些“菜单”。

运行效果如下图:
点击“菜单按钮”后就成功的“显示菜单”,并且“菜单信息3”也是“选中”状态。
● 查找菜单项


帮助文档如下图:
打开后可以看到“本方法”有“两个”参数,和一个“菜单项”返回值。
不存在会返回“空对象”。

代码编写如下图:
首先我们需要在“成员变量”中定义一个“菜单”变量设置“参考”。
然后在“通知_初始化选项菜单”的虚拟方法中,随便加入几个菜单。
最后把参数“选项菜单”赋值给定义的“菜单1”成员变量。
创建“按钮_被单击”接收事件,在事件内指定来源对象“按钮1”。
定义“菜单项”变量,设置参考。
然后用定义的“菜单1”成员变量,使用本方法“查找菜单项”,例如:我们这里查找“3”。
最后可以用“菜单项变量”来取出查找到的“菜单项”的标题。

运行效果如下图:
点击“按钮1”成功找到“菜单3”。

● 关闭菜单


帮助文档如下图:
可以看到只有一个“参数”,没有“返回值”。
顾名思义就是关闭一个打开的“菜单”。

代码如下图:
我们直接在“查找菜单项”的基础上,把“按钮”被单击下的改成“关闭菜单”即可。

● 删除菜单项


帮助文档如下图:
可以看到有“两个”参数,没有“返回值”。
顾名思义,就是“删除”指定“ID”的菜单项。

代码编写如下图:
我们只需要把“关闭菜单”的代码改成“删除菜单项”即可。
因是动态调用,所以“参数1”不用写,直接写“参数二”,这里我“删除ID2”。

运行效果如下图:
执行后打开菜单,会发现“菜单2”已经被“删除”了。

● 删除所有菜单项


帮助文档如下图:
可以看到只有“一个参数”,没有“返回值”,如果“动态”调用本方法,这个参数可以直接忽略。
顾名思义就是删除所有项目,清空菜单。

代码编写如下图:
我们只需要在“删除菜单项”的基础上,把代码改成“删除所有菜单项”即可。

二、菜单项
● ID


帮助文档如下图:
本方法是“属性读方法”,虽然可以看到一个“参数”,但是通常情况下这个参数都是直接“省略”即可。
顾名思义,就是读指定“菜单项”的ID值。

代码编写如下图:
例如:我们使用“菜单1”新增一个菜单出来。
然后直接用“菜单项变量.ID”就可以直接取出“ID值”(注意属性读写方法均没有括号)

运行效果如下图:
执行后成功返回“新加入菜单”的“ID”。

● 标题(写)


帮助文档如下图:
上面说了,“属性读写”均没有括号,所以这里的“参数”直接忽略。
“写方法”类似于赋值形式,直接“等号”加“参数二”即可。

代码编写如下图:
例如:我们查找“菜单3”。
查找后直接用属性“标题”后面直接跟着“等号”和“字符串”就可以。

运行效果如下图:
执行后打开菜单,会发现菜单的“初始值”已经被修改了。

● 标题(读)


帮助文档如下图:
“属性读方法”直接返回标题。

代码编写如下图:
例如:我们查找“菜单2”。
找到后直接用“菜单项变量.标题”就可以取出标题。

运行效果如下图:
执行后打开菜单,成功把“菜单标题”取出。

● 可被选中(写)


帮助文档如下图:
顾名思义,就算设置一个菜单项是否可以选中。

代码编写如下图:
例如:我们设置“菜单1”可以选中,查找到“菜单1”的菜单项后直接设置“本属性”等于“真”即可。

运行效果如下图:
执行后“按钮1”后,可以发现“菜单1”出现了选择模式。

● 可被选中(读)


帮助文档如下图:
顾名思义,就是“读取”一个菜单项,是否有选中功能。

代码编写如下图:
我们“菜单项”变量放到“如果”外面。
然后“按钮1”判断“菜单3”,“按钮2”判断“菜单2”。

运行效果如下图:
左图:点击“按钮1”提示“菜单3”可以被选中。
右图:点击“按钮2”,因“菜单2”初始化的时候并没有设置“选中”,所以这里只会提示“不可选中”。
        

● 可视(写)


帮助文档如下图:
顾名思义,写指定“菜单项”的“是否可视”。

代码编写如下图:
例如:我们查找“菜单3”。
找到后直接“菜单项变量.可视 = 假”即可。

运行效果如下图:
执行后打开菜单,会发现“菜单三”成功已隐藏。

● 可视(读)


帮助文档如下图:
顾名思义,就是“读取”菜单项的“可视状态”。

代码编写如下图:
我们把“变量”和“查菜单”结果都放在“如果”的外面。
“按钮1”被点击直接判断“是否可视”。
“按钮2”判断之前我们设置一个“假”,然后进行判断“是否可视”。


运行效果如下图:
左图:点击“按钮1”后提示“菜单2”可视。
右图:点击“按钮2”后则会提示“菜单2”看不见。
        

● 许可(写)


帮助文档如下图:
顾名思义,就是设置指定“菜单项”是否可用(可以理解为“是否被禁止”点击)。

代码编写如下图:
直接指定“来源对象”然后“变量名.许可=假”即可。

运行效果如下图:
执行后打开菜单,会发现“菜单2”已经被“禁止”使用了。

● 许可(读)


帮助文档如下图:
顾名思义,就是判断指定“菜单项”是否被禁止。

代码编写如下图:
直接用“如果”命令判断即可,注意是“双等号”。

运行效果如下图:
执行后“按钮1”后,会提示“可以选择”,证明“菜单三”并没有被禁止。

● 选中(写)


帮助文档如下图:
顾名思义,设置指定“菜单项”是否被选中。
注意:前提必须保证“可被选中”属性等于“真”,或者“加入菜单项”的时候,“菜单项选中状态”的参数不为“-1”。

代码编写如下图:
直接“查找菜单项”最后设置是否被选中即可。

运行效果如下图:
执行“按钮1”后,可以看到“菜单三”的选中状态已经不见了。

● 选中(读)


帮助文档如下图:
顾名思义,读取指定“菜单项”是否被选中。

代码编写如下图:
直接用“如果”进行判断即可。

运行效果如下图:
因“菜单三”创建的时候就设置了“选中”,所以执行后“菜单三”是“选中状态”。


三、菜单项信息
● 菜单项ID


帮助文档如下图:
打开帮助内容,可以看到这是一个“整数”的“变量值”,用来设置“菜单项”的“id”。

代码编写如下图:
依然是“按钮被单击”事件下面填写,创建一个“菜单项信息”变量。
然后“变量名”+“菜单项ID”=您要设置的菜单项id。
此id不能和“初始化”中的菜单“id”重复。
然后将整个“变量值”填入“加入菜单项”的参数中。

运行效果如下图:
执行按钮后,可以看到新的“菜单”也成功创建。

● 菜单项标题


帮助文档如下图:
它和“菜单项ID”一样,是一个“成员变量值”。

代码编写如下图:
使用方法和“菜单项ID”一样,您也可以同时在这里设置“菜单项ID”。

运行效果如下图:
点击“按钮1”后,新的菜单成功添加。

● 菜单项选中状态


帮助文档如下图:
它和“菜单项ID”一样,是一个“成员变量”。

代码编写如下图:
用法和“菜单项ID”一样,您也可以同时设置“标题”和“ID”,根据实际需求填写。

运行效果如下图:
新的菜单成功创建,并且选中状态存在。

四、菜单信息

● 菜单项数组


帮助文档如下图:
它是一个“成员变量”。

代码编写如下图:
设置一个“菜单信息”变量和“菜单项信息”变量。
然后“菜单项信息”分别设置好“id、标题、选中状态”。
随后就可以用上“菜单项数组”变量,利用“数组”的添加成员方法,可以吧“菜单项信息”添加进去。
最后可以利用“菜单1”的“加入菜单项2”的方法添加菜单。


运行效果如下图:
可以看到“新的标题”成功添加,并且也设置的选中状态。

● 加入菜单项


帮助文档如下图:
可以看到本方法和“菜单”的“加入菜单项”基本没区别。
不同之处就是本方法是新建了一个菜单,并且不需要进行菜单初始化就可以创建。

代码编写如下图:
创建一个“菜单信息”变量,然后直接用本方法“加入菜单”即可。
因为是“新菜单”所以这里的“id值”自己随便定,只要保证“新菜单”内的“id值”不重复即可。
最后可以利用“组件”的弹出菜单功能,进行菜单的“弹出”。

运行效果如下图:
可以看到“按钮1”点击后“按钮2”下面会弹出菜单,如果绑定的是“图片”就会在“图片”上弹出菜单。

● 删除所有菜单项


帮助文档如下图:
顾名思义,就是“删除所有菜单”。

代码编写如下图:
例如,我们随便创建几个菜单,然后调用“本方法”。

运行效果如下图:
可以看到点击“按钮1”,菜单“不会弹出”,也就间接证明,菜单被全部删除。

● 是否为空


帮助文档如下图:
顾名思义,就是判断菜单是否为空。

代码编写如下图:
在“按钮1”下面添加菜单,“按钮2”下面不添加任何菜单。

运行效果如下图:
左图:点击“按钮1”就会提示有菜单。
右图:点击“按钮2”提示没有。
        

五、上下文菜单

● 准备工作


如下图:
我们在“通知_初始化组件上下文菜单”虚拟方法下面,随便添加几个“上下文菜单”。
“上下文菜单”添加的方法和其它“菜单”添加方法没区别。

如下图:
我们在“通知_被创建”方法下“开启上下文菜单支持”,参数填写我们早就设置好的“文本框1”。

运行如下图:
运行后长按“文本框1”就可以弹出“上下文菜单”。
备注:不同“安卓系统”弹出的“位置”和“样式”可能有所差别。


● 置头部标题


帮助文档如下图:
顾名思义,就是给“上下文菜单”设置一个标题。

代码编写如下图:
直接在加菜单的结尾用“本方法”添加标题即可。
备注:“菜单标题”只能在“上下文菜单初始化”的时候进行设置。

运行效果如下图:
运行后长按“文本框1”菜单成功弹出,并且“标题”也显示出来了。


● 置头部图标


帮助文档如下图:
顾名思义,给“头部菜单”增加一个图标。

代码编写如下图:
定义一个类型为“可绘制资源”的局部变量,黄色圈内的“按钮”点击选择一个“图片”,注意必须保证是“字母”名称。
然后利用“本方法”,设置图标即可,本方法并不会清除“菜单标题”。
本方法同样只能在“菜单初始化”这里调用。

运行效果如下图:
运行后可以看到“菜单标题”的前面多了一个设置的“图标”。


● 置头部视图


帮助文档如下图:
可以看到有两个参数,顾名思义就是给“菜单头部”设置一个“组件”,并且支持动态调用。

代码编写如下图:
定义一个类型为"按钮"的局部变量,属性名写“内容”属性值填写“按钮标题”。
然后利用"本方法"把“新按钮”填入参数内即可。

运行效果如下图:
运行后可以看到设置的“菜单标题”消失,取而代之的是一个“按钮”。
备注:本方法“安卓高版本”无效(已知:安卓8.0无效)。

● 清除菜单头

本方法顾名思义,就是清除菜单头部信息(标题或图标)。
调用方式和前几方法的一样。
但是因“本方法”不能在外部调用,所以存在的意义不大,因此不做讲解。


点评

前排建议大家用浏览器右边的下拉,划得比较快   广东省广州市  发表于 2018-12-25 11:18

评分

参与人数 1好评 +1 精币 +20 收起 理由
Cand + 1 + 20 好长好长 评个分太困难了,

查看全部评分

发表于 2018-12-25 11:56:34 | 显示全部楼层   广东省揭阳市
我成功拉下来了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表