Android控件系列之EditText使用方法
Android控件系列之EditText使用方法
发布时间:2016-12-28 来源:查字典编辑
摘要:学习目的:1、掌握在Android中如何建立EditText2、掌握EditText的常用属性3、掌握EditText焦点的事件、按键的事件...

学习目的:

1、掌握在Android中如何建立EditText

2、掌握EditText的常用属性

3、掌握EditText焦点的事件、按键的事件(监听器)

介绍:

EditText是接受用户输入信息的最重要控件。通过前面课程的学习,您可能会猜到可以利用EditText.getText()获取它的文本,但真正的项目中,可能没那么简单,需要更多的限制,如文本长度限制,是否数字限制等等。

鉴于手机屏幕尺寸有限,您可能总想着如何节约控件。在每个用户需要填写内容的文本框的左边加上标题在PC上是一种优雅的方法,但在手机上就会显的浪费,因此本例我们将学习如何利用一个EditText达到所有的效果:

Android控件系列之EditText使用方法1

请注意第一个文本框,其他控件只是为了测试转移焦点后的效果,我们样例针对第一个文本进行限制,用户没有输入时,它显示“请输入您的名字”作为提示,为了区分这只是一个提示而不是真正的文本,我们使用灰色来以示区分,当用户输入自己的内容时,这个提示将会消失,而字体变为黑色,如下图:

Android控件系列之EditText使用方法2

最后我们对EditText做了长度限制,这可以简单的在XML中将它的maxLength属性设定为一个值,但用户输入不了更多字符时,会产生歧义,因此需要告知用户无法继续输入的原因:

Android控件系列之EditText使用方法3

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,并介绍了常用的属性和事件,最后实现了一个用户体验良好的,并且非常通用的文本限制和提示功能。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类