尚学堂-成都java培训机构
尚学堂联系方式028-65176856
Android edittext控件使用方法详解_安卓edittext控件
当前位置:主页 > 编程资讯 > Android edittext控件使用方法详解_安卓edittext控件

Android edittext控件使用方法详解_安卓edittext控件

成都尚学堂java培训     发布时间:2017-10-23
学习安卓开发要掌握各种控件的使用方法,本文着重讲述Android edittext控件的详细使用方法,希望对正在学习安卓开发技术的学员们有一点点的帮助,能够对安卓edittext控件的使用能够有一个完整的知识体系。



android edittext控件使用方法,下面以EditText控件中的按键事件为例,说明Android系统界面事件传递和处理过程。假设EditText控件已经设置了按键事件监听器,当用户按下键盘上的某个按键时,控制器将产生KeyEvent按键事件。Android系统会首先判断EditText控件是否设置了按键事件监听器,因为EditText控件已经设置按键事件监听器OnKeyListener,所以按键事件先传递到监听器的事件处理方法onKey()中,事件能够继续传递给EditText控件的其他事件处理方法,完全根据onKey()方法的返回值来确定:如果onKey()方法返回false,事件将继续传递,这样EditText控件就可以捕获到该事件,将按键的内容显示在EditText控件中;如果onKey()方法返回true,将阻止按键事件的继续传递,这样EditText控件就不能够捕获到按键事件,也就不能够将按键内容显示在EditText控件中。

Android界面框架支持对按键事件的监听,并能够将按键事件的详细信息传递给处理方法。为了处理控件的按键事件,先需要设置按键事件的监听器,并重载onKey()方法,示例代码如下所示。



设置按键事件的监听器,并重载onKey()方法

entryText.setOnKeyListener(new OnKeyListener(){

@Override

public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {

//过程代码……

return true/false;

}



第1行代码是设置控件的按键事件监听器。

第3行代码的onKey ()方法中的参数:第1个参数View表示产生按键事件的界面控件;第2个参数keyCode表示按键代码;第3个参数KeyEvent则包含了事件的详细信息,如按键的重复次数、硬件编码和按键标志等。

5行代码是onKey()方法的返回值:返回true,阻止事件传递;返回false,允许继续传递按键事件。

KeyEventDemo是一个说明如何处理按键事件的示例。


KeyEventDemo用户界面如图所示。






从图中可以看出,最上方的EditText控件是输入字符的区域,中间的CheckBox控件用来控制onKey()方法的返回值,最下方的TextView控件用来显示按键事件的详细信息,包括按键动作、按键代码、按键字符、UNICODE编码、重复次数、功能键状态、硬件编码和按键标志。界面的XML文件的代码如代码清单所示

界面XML文件

<EditText android:id="@+id/entry"

android:layout_width="match_parent"

android:layout_height="wrap_content">

</EditText>

<CheckBox android:id="@+id/block"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="返回true,阻止将按键事件传递给界面元素" >

</CheckBox>

<TextView android:id="@+id/label"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="按键事件信息" >

</TextView>

在EditText中,当任何一个键按下或抬起时,都会引发按键事件。为了能够使EditText处理按键事件,需要使用setOnKeyListener ()方法在代码中设置按键事件监听器,并在onKey()方法中添加按键事件的处理过程,代码如下所示。

setOnKeyListener()

entryText.setOnKeyListener(new OnKeyListener(){

@Override

public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {

int metaState = keyEvent.getMetaState();

int unicodeChar = keyEvent.getUnicodeChar();

String msg = "";

msg +="按键动作:" + String.valueOf(keyEvent.getAction())+"\n";

msg +="按键代码:" + String.valueOf(keyCode)+"\n";

msg +="按键字符:" + (char)unicodeChar+"\n";

msg +="UNICODE:" + String.valueOf(unicodeChar)+"\n";

msg +="重复次数:" + String.valueOf(keyEvent.getRepeatCount())+"\n";

msg +="功能键状态:" + String.valueOf(metaState)+"\n";

msg +="硬件编码:" + String.valueOf(keyEvent.getScanCode())+"\n";

msg +="按键标志:" + String.valueOf(keyEvent.getFlags())+"\n";

labelView.setText(msg);

if (checkBox.isChecked())

return true;

else

return false;

}


在上述代码中,第4行代码用来获取功能键状态。功能键包括左Alt键、右Alt键和Shift键,当这3个功能键被按下时,功能键代码metaState值分别为18、34和65;但没有功能键被按下时,功能键代码metaState值分别为0。

第5行代码获取了按键的Unicode值,而在第9行中,将Unicode转换为了字符,显示在TextView中。第7行代码获取了按键动作,0表示按下按键,1表示抬起按键。第7行代码获取按键的重复次数,但当按键被长时间按下时,则会产生这个属性值。第13行代码获取了按键的硬件编码,各硬件设备的按键硬件编码都不相同,因此该值一般用于调试。

第14行获取了按键事件的标志符。



尚学堂成都安卓培训课程,让你四个月快速掌握安卓开发技术,并且推荐就职IT名企,薪水翻倍,实现职场人生跨越。现在咨询还有学费优惠,如果手头拮据,还可以先培训就业后付款。

相关文章:走好自己web前端开发之路,迎接未来曙光


以上便是关于“Android edittext控件使用方法详解_安卓edittext控件”的详细内容!
上一篇:安卓开发基础培训高清视频教程下载_百度云(网盘
下一篇:java开发程序员如何规划自己的职业人生?