对话框类操作实例讲解

作者:创世魂

 

● 帮助说明

注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。

 

● 准备一个界面

 

界面如下图:

打开窗口设计器,放两个“按钮”,右侧属性文本分别起名“按钮1”“按钮2”

保存布局后,右键“按钮”,添加“按钮被单击事件接收方法”,添加完毕后如下图所示。

 

 

一、对话框类

 

● 创建对话框

 

帮助文档如下图:

可以看到有一个“窗口”参数,可以一个“对话框类”返回值。

创建后,所有的“对话框操作”都基于这个返回值。

 

代码如下图:

创建一个类型为“对话框类”的成员变量(名称随意),设置参考。

随后在“按钮1被单击”事件下,用“对话框类.创建对话框()”,创建后赋值给定义的成员变量。

窗口参数,填写“本对象”即可。

最后可以利用“显示()”方法,将对话框显示出来。

 

运行效果如下图:

执行“按钮1”后,就可以看到“对话框”被弹出。

 

● 添加组件

 

帮助文档如下图:

可以看到本方法有“三个”参数。

参数1:要添加的组件,注意不能是窗口组件。

注意“参数2、3”,并不是用来设置高度和宽度的,只能写“-1”或者“-2”

 

代码编写如下图:

在原代码基础上,设置一个类型为“文本框”的变量,顺便还可以在“属性名”“内容”“属性值”写要添加的内容。

随后利用“本方法”把定义的“文本框变量”添加进去。

最后依然是调用“显示()”方法,显示出来。

 

运行效果如下图:

点击“按钮1”后,在弹出的“对话框”里面就多了一个“文本框”并且设置的标题内容也成功显示。

 

● 查找组件

 

帮助文档如下图:

可以看到只有一个“组件ID”参数,通过这个“组件ID”就可以查找到对应的组件,并且返回。

 

代码编写(1):

我们只需要在“添加组件代码”基础上,稍作修改即可。

第一:将“文本框变量”放到“如果”上面,并且增加一个“ID”属性名,属性值填写“1”

添加一个“否则(来源对象==按钮2)”,判断“按钮2”被点击。

“按钮2”下面创建一个类型为“窗口组件”的变量。

然后利用“对话框变量.查找组件”查找文本框的“ID”

最后可以利用“窗口组件”的背景色属性,给“文本框”设置“背景色”

代码编写(2):

如果你要修改文本框的“内容”,只需要“两步”就可以办到。

第一:类型设置“文本框”

第二:强转“窗口组件”类型为“文本框”,在本方法的最前面直接写(文本框)即可。

强转后就可以设置文本框的新内容。

 

代码1运行效果图(GIF):

代码2自行测试

首先执行“按钮1”创建对话框,随后执行“按钮2”查找组件,修改属性。

 

● 置内容组件

 

帮助文档如下图:

本方法和“添加组件”一样,不同之处,本方法会“覆盖”对话框上所有的组件。

本方法依然不能使用“窗口上"的火山组件。

 

代码编写如下图:

我们继续在原代码的基础上修改,增加一个类型为“按钮”“按钮变量”

设置内容为“新按钮”

然后利用本方法设置“按钮组件”

最后利用“显示()”方法显示对话框。

 

运行效果如下图:

最后结果会看到,只显示了“按钮”并没有显示“文本框”,文本框会被按钮“覆盖”掉。

 

● 显示

 

帮助文档如下图:

顾名思义显示当前定义的对话框,前面的几个例子都展示了“显示”方法,这里不再演示。

 

● 隐藏
● 关闭
● 中止

 

以上三个方法用法和最终效果一致,这里举例“隐藏”

帮助文档如下图:

顾名思义,就是用来“隐藏”对话框窗口。

 

代码编写如下图:

定义“按钮”变量,设置标题为“隐藏”

创建“对话框对象”后,添加“隐藏按钮”

利用“挂接事件()”方法,动态挂接创建的“隐藏按钮”

参数1:填写按钮名称。参数2,标记值。

随后利用“显示”方法显示。

最后我们利用“挂接事件”方法填写“标记值”来判断“隐藏按钮”被单击。

然后执行“隐藏”方法即可。

如果你要使用“关闭方法”,直接将“隐藏”改成“关闭”即可。

 

运行效果如下图:

可以看到我点击“隐藏”后,对话框消失。

 

 

● 标题(写)

帮助文档如下图:

写属性方法,顾名思义就是给对话框设置一个标题。

 

代码编写如下图:

创建“对话框”后,直接写“对话框变量.标题=”加你想要设置的标题即可。

 

运行效果如下图:

显示对话框后,可以看到“对话框”多了一个标题文本。

 

● 界外触摸关闭(写)

 

帮助文档如下图:

本命令也是写属性,顾名思义就是用来设置“对话框外界”,触摸的时候“是否关闭”对话框。

“真”则关闭,“假”则不关闭(可以通过返回键关闭)。

如果不设置默认为真。

 

代码编写

“按钮1”被单击下写“界外触摸关闭=真”

在"按钮2"被单击下写"界外触摸关闭=假"

 

运行效果如下图(GIF):

可以看到点击“按钮1”显示对话框后,点击“对话框外界”直接关闭。

而点击“按钮2”显示对话框后,点击“对话框外界”则不会关闭。

此时,可以按“手机返回键”关闭对话框。

 

● 退回键关闭(写)

 

帮助文档如下图:

写属性,就是用来设置“按下手机返回键”是否关闭对话框。

“等于真”关闭,“等于假”不关闭。

如果不设置,默认点击返回键关闭。

 

代码编写如下图:

我们直接在“界外触摸关闭”的代码基础上稍作修改。

“界外触摸关闭”改成“退回键关闭”即可。

 

运行效果(GIF):

可以看到点击“按钮1”显示后,按下返回键,对话框关闭。

点击“按钮2”显示时,按下返回键,对话框不会关闭。

 

● 是否被显示(读)

 

帮助文档如下图:

读属性,顾名思义就是用来判断当前对话框是否显示。

返回“真”显示,返回“假”没显示。

 

代码编写如下图:

“按钮1”被单击下写“显示”方法后判断“是否被显示”

“按钮2”这边不写显示方法,直接判断是否被显示。

 

运行效果(GIF):

“按钮1”被单击后,自然是提示“显示了”

“按钮2”则相反。

 

 

● 被显示(事件)
● 被关闭(事件)
● 被中止(事件)

 

事件添加:

右键“对话框类”,选择“事件接收方法”

 

在弹出窗口中,依次选择后“添加”

 

 

代码编写(1):

会生成如下图所示的“三个”事件,分别判断“来源对象”后弹出“提示框”

您可以将“提示框”,换成您想要操作的“其它方法”

 

代码编写(2):

我们需要添加“三个组件”,其中的“线性布局器”是用来放“两个按钮”的。

因为“对话框”内只能放“一个”组件,所以我们需要一个“线性布局器”来实现放更多的组件。

创建“对话框”后,我们用线性布局器“添加子组件”方法,将“两个按钮”依次添加进去。

最后给对话框添加“线性布局器”

然后我们需要给对话框挂接事件,这样“被显示”等事件才能被触发。

随后给两个按钮挂接事件,填写标记值,然后判断按钮被点击。

 

运行效果如下图:

可以看到“对话框”显示后,“被显示”事件也被触发。

“关闭”按钮被点击时,“被关闭”事件也被触发。

“中止”按钮被点击时,除了“被中止”事件触发外,“被关闭”事件也被触发