文本是接受用户输入信息的最重要的控件。通过前面的课,你可能猜到可以用EditText.getText()来获取它的文本,但在实际项目中,可能没那么简单,需要更多的限制,比如文本的长度,是否受数字限制等等。
学习目的:
1.掌握如何在Android中构建EditText2,掌握EditText3的常用属性,掌握EditText焦点的事件和按键的事件(listener)
介绍:
文本是接受用户输入信息的最重要的控件。通过之前课程的学习,你可能会猜测可以使用EditText.getText()来获取它的文本,但在实际项目中,可能没那么简单,需要更多的限制,比如文本的长度,是否受数字限制等等。
考虑到手机屏幕尺寸有限,你可能总会考虑如何保存控件。在每个用户需要填写的文本框的左边添加一个标题在PC上是一个优雅的方法,但在移动电话上会很浪费,所以在这个例子中,我们将学习如何使用EditText来实现所有的效果:
请注意第一个文本框。其他控件只是用来测试转移焦点后的效果。我们的例子仅限于第一个文本。当用户没有输入时,它显示“请输入您的姓名”作为提示。为了把这个和真实文本区分开来,我们用灰色来表示区别。当用户输入自己的内容时,这个提示会消失,字体会变黑,如下图所示:
最后,我们限制EditText的长度,它可以简单地将其maxLength属性设置为XML中的一个值。但是当用户不能输入更多的字符时,就会产生歧义,所以需要告知用户为什么不能继续输入:
XML布局代码如下:
复制代码代码如下:可扩展标记语言版本='1.0 '编码='utf-8 '?线性布局xmlns:Android=' http://模式。安卓。' Android:orientation=' vertical ' Android:layout _ width=' fill _ parent ' Android:layout _ height=' fill _ parent ' EditText Android:layout _ width=' fill _ parent ' Android:layout _ height=' wrap _ content ' Android:text color=' # DDDDDD ' Android:text='请输入您的名字Android:id=' @ id/et ' Android:maxLength=' 10 '/EditText按钮Android:layout _ width=' fill _ parent ' Android:layout _ height=' wrap _ content ' Android:text='点击转换焦点/Button EditText Android:layout _ width=' fill _ parent ' Android:layout _ height=' wrap _ content ' Android:text='点击转换焦点Android:id=' @ id/et2 '/EditText/linear layout后台代码如下:复制代码代码如下: //表示文本框是否为空private Boolean isEmpty=true/**首次创建活动时调用. Override public void onCreate(Bundle savedInstanceState){ super。 onCreate(savedInstanceState);setContentView(r . layout。main);EditText et=(EditText)this。findviewbyid(r . id。et);//监听控件的焦点改变事件et。setonfocuschangelistener(new OnFocusChangeListener(){ @ Override public void onFocusChange(View arg 0,boolean arg1) { //TODO自动生成的方法存根//获取触发事件的EditText EditText clickEditText=(EditText)arg 0;//如果失去焦点if(arg1==false) { //获取当前文本string text=单击编辑文本。gettext().toString().trim();//如果的确人为输入过内容if(text.length()0 text.equals('请输入您的名字)==false){ isEmpty=false;单击EditText.setTextColor(Color .黑色);单击编辑文本。settext(文本);} else { clickEditText.setText('请输入您的名字');单击EditText.setTextColor(Color .灰色);isEmpty=true} } //如果获得焦点else {单击编辑文本。settext颜色(颜色.黑色);//如果处于未编辑状态,则清空"请输入您的名字"这几个字if(isEmpty==true){ clickedittext。settext(');} } } });//监听控件有新字符输入et。setonkeylistener(new onKey listener(){ @ Override public boolean onKey(View arg 0,int arg1,KeyEvent arg2) { //TODO自动生成的方法存根//获取触发事件的EditText EditText clickEditText=(EditText)arg 0;//获取当前文本string text=单击编辑文本。gettext().toString().trim();if(text.length()==10) { //提示用户吐司吐司=吐司。制作文本(我的活动。“这,”最大长度为10个字符,吐司. LENGTH _ SHORT);toast.setGravity(0,0,0);吐司。show();}返回false } });}
总结:本文介绍了如何在机器人中使用编辑文本,并介绍了常用的属性和事件,最后实现了一个用户体验良好的,并且非常通用的文本限制和提示功能。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。