作者:创世魂
● 说明
本类位于“安卓基本类”模块中,必须添加此模块才能使用。
● 准备工作
界面如下图:
打开窗口设计器,拖放两个“按钮”和两个“编辑框”。
分别起名“按钮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):
可看到当软件启动后,并没有弹出输入法,并且编辑框也没有光标在闪烁。