Android控件系列之EditText
2011-06-21 15:01
323 查看
学习目的:
1、掌握在Android中如何建立EditText
2、掌握EditText的常用属性
3、掌握EditText焦点的事件、按键的事件(监听器)
介绍:
EditText是接受用户输入信息的最重要控件。通过前面课程的学习,您可能会猜到可以利用EditText.getText()获取它的文本,但真正的项目中,可能没那么简单,需要更多的限制,如文本长度限制,是否数字限制等等。
鉴于手机屏幕尺寸有限,您可能总想着如何节约控件。在每个用户需要填写内容的文本框的左边加上标题在PC上是一种优雅的方法,但在手机上就会显的浪费,因此本例我们将学习如何利用一个EditText达到所有的效果:
请注意第一个文本框,其他控件只是为了测试转移焦点后的效果,我们样例针对第一个文本进行限制,用户没有输入时,它显示“请输入您的名字”作为提示,为了区分这只是一个提示而不是真正的文本,我们使用灰色来以示区分,当用户输入自己的内容时,这个提示将会消失,而字体变为黑色,如下图:
最后我们对EditText做了长度限制,这可以简单的在XML中将它的maxLength属性设定为一个值,但用户输入不了更多字符时,会产生歧义,因此需要告知用户无法继续输入的原因:
XML布局代码如下:
后台代码如下:
总结:
本文介绍了如何在Android中使用EditText,并介绍了常用的属性和事件,最后实现了一个用户体验良好的,并且非常通用的文本限制和提示功能。
1、掌握在Android中如何建立EditText
2、掌握EditText的常用属性
3、掌握EditText焦点的事件、按键的事件(监听器)
介绍:
EditText是接受用户输入信息的最重要控件。通过前面课程的学习,您可能会猜到可以利用EditText.getText()获取它的文本,但真正的项目中,可能没那么简单,需要更多的限制,如文本长度限制,是否数字限制等等。
鉴于手机屏幕尺寸有限,您可能总想着如何节约控件。在每个用户需要填写内容的文本框的左边加上标题在PC上是一种优雅的方法,但在手机上就会显的浪费,因此本例我们将学习如何利用一个EditText达到所有的效果:
请注意第一个文本框,其他控件只是为了测试转移焦点后的效果,我们样例针对第一个文本进行限制,用户没有输入时,它显示“请输入您的名字”作为提示,为了区分这只是一个提示而不是真正的文本,我们使用灰色来以示区分,当用户输入自己的内容时,这个提示将会消失,而字体变为黑色,如下图:
最后我们对EditText做了长度限制,这可以简单的在XML中将它的maxLength属性设定为一个值,但用户输入不了更多字符时,会产生歧义,因此需要告知用户无法继续输入的原因:
XML布局代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 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:textColor="#DDDDDD" android:text="请输入您的名字" android:id ="@+id/et" android:maxLength = "10" ></EditText> <Button 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> </LinearLayout>
后台代码如下:
//表示文本框是否为空 private Boolean isEmpty = true; /** Called when the activity is first created. */ @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 arg0, boolean arg1) { // TODO Auto-generated method stub //获取触发事件的EditText EditText clickEditText = (EditText)arg0; //如果失去焦点 if(arg1 == false) { //获取当前文本 String text =clickEditText.getText().toString().trim(); //如果的确人为输入过内容 if(text.length()>0 &text.equals("请输入您的名字")== false) { isEmpty = false; clickEditText.setTextColor(Color.BLACK); clickEditText.setText(text); } else { clickEditText.setText("请输入您的名字"); clickEditText.setTextColor(Color.GRAY); isEmpty = true; } } //如果获得焦点 else { clickEditText.setTextColor(Color.BLACK); //如果处于未编辑状态,则清空“请输入您的名字”这几个字 if(isEmpty == true) { clickEditText.setText(""); } } } }); //监听控件有新字符输入 et.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View arg0, int arg1, KeyEvent arg2) { // TODO Auto-generated method stub //获取触发事件的EditText EditText clickEditText = (EditText)arg0; //获取当前文本 String text =clickEditText.getText().toString().trim(); if(text.length()==10) { //提示用户 Toast toast = Toast.makeText(MyActivity.this, "最大长度为10个字符", Toast.LENGTH_SHORT); toast.setGravity(0, 0, 0); toast.show(); } return false; } }); }
总结:
本文介绍了如何在Android中使用EditText,并介绍了常用的属性和事件,最后实现了一个用户体验良好的,并且非常通用的文本限制和提示功能。
相关文章推荐
- Android控件系列之EditText
- Android控件系列之EditText
- Android_Android控件系列之EditText使用方法
- android应用的ACTIVITY当使用EditText控件时会默认弹出输入法窗口,默认不弹出窗口方法
- Android - VGA,ADB,DDMS,安卓开发环境目录结构,安卓目录结构,常见布局,点击事件的几种写法,控件(Button/TextView/ImageView/EditText)
- 【读书笔记《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
- android如何改变editText控件中部分文字的格式
- android控件edittext-addTextChangedListener监听文本的变化
- android控件之EditText
- Android 自定义Dialog 里面有EditText控件点击关闭输入法失效的问题
- Android常用控件-TextView、EditView、Button、Menu
- Android_基本控件--TextView、EditView、assets资源访问
- Android自定义组合控件--EditText和Button组合成带有清空EditText内容功能的复合控件
- 让android的控件EditText不自动获取焦点
- 4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
- Android系列教程之七:EditText使用详解-包含很多教程上看不到的功能演示
- Android 系列 6.16使用TextView和EditText显示文本字段
- android如何改变editText控件中部分文字的格式
- Android系列教程之EditText使用详解-包含很多教程上看不到的功能演示