EditText继承自TextView,是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。
使用 android:hint属性来指定了一段提示性的文本,当我们输入任何内容时,这段文本就会自动消失。
不过随着输入的内容不断增多,EditText 会被不断地拉长。这时由于 EditText 的高度指定的是 wrap_content,因此它总能包含住里面的内容,但是当输入的内容过多时,界面就会变得非常难看。我们可以使用 android:maxLines属性来解决这个问题,android:maxLines="2",这里通过 android:maxLines 指定了 EditText 的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而 EditText则不会再继续拉伸。
如何在EditText中限定输入字符的方式:
1.通过设置digits属性限定输入的字符:android:digits="0123456789"
2.通过设置inputtype属性选择输入字符类型:android:inputType="number"
3.通过设置numberic属性接受数字输入:android:numeric="integer"
<EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@drawable/edittext_shape" android:digits="123450" android:drawableLeft="@drawable/peasy" android:drawablePadding="10dp" android:ems="10" android:hint="Custom EditText" android:inputType="phone" android:numeric="integer" android:padding="10dp" android:maxLines="2" >
另外,还可以自定义EditText的形状,设置为圆角矩形并把背景色设为深灰色。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:radius="10dp" /> <solid android:color="@android:color/darker_gray" /> </shape>
在EditText控件里,设置android:background="@drawable/edittext_shape
<EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/edittext_shape" android:drawableLeft="@drawable/peasy" android:hint="Custom EditText" >
自定制的EditText运行效果:
事件处理,setOnEditorActionListener事件只有在按下回车键的时候才会被触发。
1 public void showEditText() { 2 editText = (EditText) findViewById(R.id.editText2); 3 // 指定编辑行为 4 editText.setOnEditorActionListener(new OnEditorActionListener() { 5 6 @Override 7 public boolean onEditorAction(TextView v, int actionId, 8 KeyEvent event) { 9 // TODO Auto-generated method stub 10 // 按下enter建才会被调用 11 Log.i(TAG, "onEditorAction :" + actionId); 12 return false; 13 } 14 }); 15 }