编辑框组件操作实例讲解

作者:创世魂

 

● 说明

本组件,继承了“文本框”“窗口组件”的所有方法。

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

 

● 准备工作

 

界面如下图:

打开窗口设计器,拖放两个“按钮”和两个“编辑框”

分别起名“按钮1”“按钮2”“编辑框1”“编辑框2”


保存布局后,右键“按钮”选择“添加事件接收方法”

然后去添加“按钮_被单击”事件。

最终达到如图所示的效果。

 

 

一、编辑框

 

● 本类说明

 

“编辑框”组件,此组件的作用可用来显示和编辑文本。

可通过“窗口组件”的基础类中的“背景色”“背景图”等属性调整当前文本框的背景色和背景图。

如果想要调整“内容”可通过继承自“文本框”“内容”属性进行调整。

 

 

● 光标到文本尾

 

帮助文档如下图:

顾名思义,通过本方法可以将当前编辑框内的“光标”,移动到编辑框内容的尾部。

 

代码编写如下图:

直接通过“编辑框1”调用当前方法即可。

 

运行效果如下图(GIF):

“按钮1”被点击后,可以看到当前编辑框的光标跑到了内容的尾部。

 

 

● 选择全部文本

 

帮助文档如下图:

顾名思义,本方法的作用就是用来选择编辑框的全部文本。

 

代码编写如下图:

直接通过“编辑框1”调用当前方法即可。

 

运行效果如下图(GIF):

点击“按钮1”后,就可以看到“编辑框1”的内容被全部选择。

 

 

● 选择文本

 

帮助文档如下图:

本方法通过两个参数值,可以选择指定区域的文本。

 

代码编写如下图:

首先可调用“内容”属性设置内容。

然后调用当前方法,填写想要选区的区域参数即可。

 

运行效果如下图(GIF):

最后可以看到“火山”两个字被选中。

 

 

● 置内容输入类型
● 常用输入类型(写)

 

以上两个都是用来设置当前编辑框的输入类型。

前者是通过“输入类型.XXX”来指定参数,后者是通过“常用输入类型.XXX”来指定属性值。

此处举例“置内容输入类型”

 

帮助文档如下图:

本方法只有一个参数,通过“输入类型.XXX”指定当前的输入类型。

注意:从此方法开始,下面的方法都是继承自“文本框”的方法。

 

代码编写如下图:

直接在“按钮1”被点击下,调用本方法,参数填写为“输入类型.数字”

 

运行结果如下图(GIF):

点击“按钮1”后,可以看到当前编辑框无法输入任何字母汉字。

但是输入数字不受影响。

 

 

● 取内容输入类型

 

帮助文档如下图:

顾名思义,本方法的作用就是用来读取当前的“输入类型”

返回值为“输入类型.XXX”的常量值。

 

代码编写如下图:

“按钮1”被点击后,设置输入类型为“输入类型.数字”

“按钮2”被点击后,判断当前方法的返回值是否为“输入类型.数字”

然后弹出对应的提示。

 

运行结果如下图(GIF):

默认点击“按钮2”会提示“其它类型”

点击“按钮1”后重新点击“按钮2”会提示“数字”

 

 

● 光标是否可见(读写)

 

“光标是否可见(写)”帮助文档:

顾名思义,设置当前组件光标是否可见。

属性值为真表示可见,否则相反。

注意:设置为假后,即使点击编辑框,光标也不会出现。

 

“光标是否可见(读)”帮助文档:

读取当前的光标是否可见。

返回真表示可见,否则返回假。

 

代码编写如下图:

利用“取反”方法,将当前读属性赋值给写属性。

 

运行效果如下图(GIF):

可以看到“按钮1”被点击后,光标会消失,并且点击编辑框,光标也不会出现。

只有重新点击“按钮1”光标才会出现。

 

 

● 输入法选项(写)

 

帮助文档如下图:

通过本属性可以设置输入法的“回车键”按钮标题。

调用方式:“输入法选项.XXX”

 

代码编写如下图:

想要使用本属性,必须将当前编辑框的模式设置为“单行模式”

然后才能调整“输入法选项”,例如:此处调整为“输入法选项.搜索”

 

运行效果如下图:

当点击“按钮1”后,触摸“编辑框1”弹出输入法后。

可以看到原“回车键”的位置,标题修改为了“搜索”

注意:模拟器默认不支持弹出输入法,本属性需要使用真机测试。

 

 

● 支持按键监听(写)
● 按键输入(事件)

 

“支持按键监听(写)”帮助文档:

顾名思义,通过本属性可以设置当前组件是否开启按键监听。

属性值设置为真则开启监听,否则不监听。

开启后会发送“按键输入”事件。

注意:本属性继承自“窗口组件”基础类,以下属性事件均继承自本类。

 

“按键输入(事件)”帮助文档:

“支持按键监听”属性值设置为真后将发送本事件。

通过“按键事件类”参数可以指定按键。

 

代码编写如下图:

“按钮1”被点击下,设置“支持按键监听”的属性值为“真”

添加“编辑框_按键输入”事件。

指定来源对象后,通过“按键输入事件”参数判断是否为“CTRL键”被按下。

如果是ctrl键被按下,就在编辑框添加内容。

 

运行结果如下图(GIF):

当点击“按钮1”后,如果当前手机外接了键盘。

那么此时按下“ctrl键”,编辑框内必然会添加指定的内容。

 

 

● 支持焦点改变监听(写)
● 组件焦点被改变(事件)

 

“支持焦点改变监听(写)”帮助文档:

本属性值设置为“真”则监听“组件焦点被改变”事件,设置为“假”则不监听。

 

“组件焦点被改变(事件)”帮助文档:

“支持焦点改变监听”属性值设置为真后将发送本事件。

通过“是否获得焦点”参数可判断当前组件的焦点是否存在。

 

代码编写如下图:

“按钮1”被点击下,设置“支持焦点改变监听”的属性值为“真”

添加“编辑框_组件焦点被改变”事件。

判断来源对象后,继续判断“是否获得焦点”参数的返回值即可。

最后在对应的编辑框输入对应的内容。

 

运行结果如下图(GIF):

当点击“按钮1”后,去点击“编辑框2”,此时编辑框2必然会获得焦点。

并且对应的编辑框也增加了指定的内容。

 

 

● 支持内容改变监听(写)
● 内容被改变(事件)

 

“支持内容改变监听(写)”帮助文档:

只有将本属性设置为真,才能发送“内容被改变”事件。

 

“内容被改变(事件)”帮助文档:

当设置“支持内容改变监听=真”后,当编辑框的内容发送改变时会触发本事件。

 

代码编写如下图:

1、在编辑框的属性栏设置“支持内容改变监听=真”。

2、添加“编辑框_内容被改变”事件,弹出提示。

 

运行结果如下图(GIF):

可以看到当编辑框内容被改变后,会弹出提示。

 

● 光标位置(读写)

 

帮助页如下图:

本属性的属性值为整数,填写要设置的光标位置即可。

注意:必须编辑框有焦点的情况下才能设置光标位置,并且还要保证设置的位置不能超过文本长度。

 

代码编写如下图:

1、给编辑框提前设置内容。

2、当按钮被点击后,分别执行设置和读取光标位置属性。

 

运行结果如下图(GIF):

可看到光标位置被修改。

 

● 显示输入法

 

帮助页如下图:

1、本方法继承自“输入法管理类”,需要通过输入法管理类来实现显示输入法。

2、本方法支持动态调用,动态调用时忽略参数1,直接填写参数2即可。

 

代码编写如下图:

1、“输入法管理类”的创建需要通过“获取系统服务(安卓环境.输入法服务)”方法来实现。

2、获取后要强制转换成“输入法管理类”,才能赋值给定义的输入法变量。

3、最后判断“输入法”不等于空对象后,才可以进行输入法显示工作。

 

运行结果如下图(GIF):

当按钮被点击后,输入法将会被显示出来。

 

● 隐藏输入法

 

帮助页如下图:

本方法同样输入“输入法管理类”的方法,用法和显示输入法基本一致。

 

代码编写如下图:

1、首先获取输入法服务,获取后判断是否获取成功。

2、调用“输入法.隐藏输入法()”就可以对输入法进行隐藏操作。

 

运行结果如下图(GIF):

按钮被点击后,输入法将被隐藏。

 

● 启动不弹出输入法

 

部分手机存在软件启动后会弹出输入法或编辑框光标闪烁的问题。

利用“隐藏输入法()”方法也无法解决。

下面给出完美的解决方案,让软件启动后不弹出输入法,甚至光标也不会在编辑框中闪烁。

 

代码编写如下图:

1、在“启动类”设置属性名“@安卓.附加清单”,属性值填写“常用窗口附加清单.不改变软键盘状态”

2、在“通知_被创建”虚拟方法下,取出窗口容器组件,设置“可获得焦点=真”“支持布局完毕监听=真”

3、“可获得焦点”作用,是让窗口容器可以获得焦点。

4、“支持布局完毕监听”属性是用来监听布局完毕,因为只有布局完毕后才能使用“获得焦点()”方法。

5、最后给“窗口容器”变量挂接事件,挂接后才能触发事件。

 

4、添加“窗口容器组件_布局完毕”事件,通过“标记值”判断来源。

5、最后通过“来源对象.获得焦点()”将焦点转移给窗口容器,这样编辑框就不会在软件运行后显示输入法和光标了。

 

运行结果如下图(GIF):

可看到当软件启动后,并没有弹出输入法,并且编辑框也没有光标在闪烁。